Проблема с перенесением алгоритмов Matlab в C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте.возник такой вопрос нужно алгоритмы с Matlab'a перенести на Visual Studio. нашел тему на хабре ( вот она http://habrahabr.ru/post/132487/ ). Здесь все подробно описывается. пытался все сделать так же,но ничего не получилось, видимо из-за того что я не в 2008 MVS работал, а в 2010. Может кто подскажет что и как нужно изменить в коде чтобы заработало? спасибо.

Решение задачи: «Проблема с перенесением алгоритмов Matlab в C#»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MathWorks.MATLAB.NET.Utility;
using MathWorks.MATLAB.NET.Arrays;
using MATLABplane;
 
namespace planeApp
{
  public partial class Form1 : Form
  {
      public Form1()
      {
          InitializeComponent();
          button1.Click += new EventHandler(button1_Click);//инициализация событий
          button2.Click += new EventHandler(button2_Click);
      }
 
      double x0, x1, y0, y1, h; //объявление переменых
      string func, s_x0, s_x1, s_y0, s_y1, s_h;
 
      MWArray[] res = null; //выходной массив метода plane
      MWNumericArray descriptor = null; //массив возвращаемого параметра 
 
      private void button1_Click(object sender, EventArgs e)//событие
      {
          try
          {
              func = textBox1.Text; //считывание с TextBox
              s_x0 = textBox2.Text;
              s_x1 = textBox3.Text;
              s_y0 = textBox4.Text;
              s_y1 = textBox5.Text;
              s_h = textBox6.Text;
 
              MWCharArray mw_func = new MWCharArray(func);//преобразование строки функции в тип MWCharArray
              x0 = Convert.ToDouble(s_x0); //преобразоване string в double
              x1 = Convert.ToDouble(s_x1);
              y0 = Convert.ToDouble(s_y0);
              y1 = Convert.ToDouble(s_y1);
              h = Convert.ToDouble(s_h);
 
              planeClass obj_plane = new planeClass(); //экземпляр класса компонента               
              res = obj_plane.plane(1, mw_func, x0, x1, y0, y1, h);//обращение к методу plane, первый параметр - это кол-во возвращаемых аргументов
 
              descriptor = (MWNumericArray)res[0]; //выбор первого элемента из массива MWArray и преобразование в числовой тип MWNumericArray
              double[,] d_descriptor = (double[,])descriptor.ToArray(MWArrayComponent.Real);//преобразование массива MWNUmericArray  к масииву типа double  
 
              for (int i = 0; i < d_descriptor.Length; i++)//вывод массива d_descriptor в RichBox
              {
                  richTextBox1.Text += i.ToString() + '\t';
                  richTextBox1.Text += d_descriptor[i, 0].ToString("0.000") + '\n';//преобразование элеметна массива double в string
              }
          }
          catch (Exception ex)//обработка исключения 
          {
              System.Windows.Forms.MessageBox.Show(ex.Message);
          }
      }
 
      private void button2_Click(object sender, EventArgs e)
      {
          richTextBox1.Text = string.Empty;//очистка RichBox
          res = null;//обнуление массивов
          descriptor = null;
      }
  }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5