C#调用matlab函数,参数传递的问题,请指教

M文件中函数如下(Buildingback.m):function[cls,xx,yy,zz]=Buildingback(arr,val,str)//接受3个参数:分别是... M文件中函数如下(Buildingback.m):
function [cls,xx,yy,zz] = Buildingback(arr,val,str)

//接受3个参数:分别是数组类型,整型,字符型;

C#中语句:
// arr参数值是在button1_click事件中得到的结果
// val,str参数值是在button2_click事件中得到的结果
问题1:想在button2_click事件调用m函数,如何使用button1_click事件中的变量arr?

代码如下:
public Form1()
{

InitializeComponent();
}
public void button1_click(object sender, EventArgs e)
{

...

string[] arr = data.Split(new char[] {'\n'});
}

// arr读进来后每行的格式是:1 32 53 54\r

//问题2:如何去掉每行末尾的\r 然后 将arr转成 4列的数组[1 32 53 54]

public void button2_click(object sender, EventArgs e)
{
int val = 6;
string str = 'b';

BuildingBack.Bback st = new BuildingBack.Bback();
MathWorks.MATLAB.NET.Arrays.MWArray data = arr, data2 = val, data3 = str;
// 问题1:没有声明arr?请问哪里不对呀?我已经将butoon1_click定义为public了呀
st.Buildingback(data, data2, data3);
}
展开
 我来答
寻梦生
2014-12-24 · TA获得超过179个赞
知道小有建树答主
回答量:581
采纳率:50%
帮助的人:452万
展开全部
问题1:想在button2_click事件调用m函数,如何使用button1_click事件中的变量arr?

使用一个全局变量保存arr。

// 问题1:没有声明arr?请问哪里不对呀?我已经将butoon1_click定义为public了呀

public是指方法是public,不是里面的变量都是public

//问题2:如何去掉每行末尾的\r 然后 将arr转成 4列的数组[1 32 53 54]

使用正则表达式去掉换行符,如下:
string content=@"aaa
bbb";
content = Regex.Replace(content, "\r","");

至于转换数组,你本身不就是string数组吗?
kcxnvbdbd
2014-12-24 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:616万
展开全部
几乎没基础啊
问题1. 必须把arr申明为全局的,比如:
private string[] arr = null; //在此处申明后,就可以在button2_click中使用了
private void button1_click(object sender, EventArgs e)
{
...
arr = data.Split(new char[] {'\n'});
}

问题2. arr = data.Replace("\n", "").Split(' ');
追问
那么如何将这个string[]类型的arr 传给 matlab函数中的data参数。
提示错误:
无法将类型"string[]"隐式转换为"Mathworks.MATLAB.NET.Array.MWArray"

请问这里如何写代码将 string[] arr 转换为 MWArray类型?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式