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);
} 展开
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);
} 展开
2个回答
展开全部
问题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数组吗?
使用一个全局变量保存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数组吗?
展开全部
几乎没基础啊
问题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(' ');
问题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类型?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询