Проблема с перенесением алгоритмов 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;
}
}
}