在c#中提取matlab传出的多个参数,怎么弄啊,我老是搞不好 求帮助,谢谢
答案:3 悬赏:10 手机版
解决时间 2021-12-22 21:15
- 提问者网友:嘚啵嘚啵
- 2021-12-22 08:04
在c#中提取matlab传出的多个参数,怎么弄啊,我老是搞不好 求帮助,谢谢
最佳答案
- 五星知识达人网友:污到你湿
- 2021-12-22 09:37
这两天我也遇到了该问题,刚刚解决掉,跟你分享下吧。
//输入这里想传入的2个输入参数,为了支持矩阵好通用,所以得弄成Array
double[] a = { 1, 2, 3, 4, 5, 6 };//输入参数1
double[] b = { 2, 4, 6, 8, 10, 12 };//输入参数2
double[,] c = new double[3, 2];//输出参数1
double[,] d = new double[3, 2];//输出参数2
//这些参数都是矩阵
MWNumericArray ma = new MWNumericArray(3, 2, a);//转换成matlab需求的格式
MWNumericArray mb = new MWNumericArray(3, 2, b);
//输出参数是一个MWArray数组
MWArray[] agrsOut = new MWArray[2];//两个输出参数,一定要写数量
//输出几个输出参数可以是不同类型的,比如第一个元素是矩阵,第二个是数值
//同理,输入参数也是一个MWArray数组
MWArray[] agrsIn = new MWArray[] { ma,mb};
//调用函数,输出参数需要加 ref 关键字
myFun.MatrixOpera(2, ref agrsOut, agrsIn);
//2表示输入参数的个数,输出结构都在argsOut中,类似于c的指针参数输入
//转换得到实际的输出参数
MWNumericArray x1 = agrsOut[0] as MWNumericArray;
MWNumericArray x2 = agrsOut[1] as MWNumericArray;
c = (double[,])x1.ToArray();
d = (double[,])x2.ToArray();
//一定要注意最后c和d的转化,不同类型的转换差异很大厄
//ToArray()对应n*m的数组
//ToScalarDouble()对应单个数值
//ToVetor()对应1维数组
//输入这里想传入的2个输入参数,为了支持矩阵好通用,所以得弄成Array
double[] a = { 1, 2, 3, 4, 5, 6 };//输入参数1
double[] b = { 2, 4, 6, 8, 10, 12 };//输入参数2
double[,] c = new double[3, 2];//输出参数1
double[,] d = new double[3, 2];//输出参数2
//这些参数都是矩阵
MWNumericArray ma = new MWNumericArray(3, 2, a);//转换成matlab需求的格式
MWNumericArray mb = new MWNumericArray(3, 2, b);
//输出参数是一个MWArray数组
MWArray[] agrsOut = new MWArray[2];//两个输出参数,一定要写数量
//输出几个输出参数可以是不同类型的,比如第一个元素是矩阵,第二个是数值
//同理,输入参数也是一个MWArray数组
MWArray[] agrsIn = new MWArray[] { ma,mb};
//调用函数,输出参数需要加 ref 关键字
myFun.MatrixOpera(2, ref agrsOut, agrsIn);
//2表示输入参数的个数,输出结构都在argsOut中,类似于c的指针参数输入
//转换得到实际的输出参数
MWNumericArray x1 = agrsOut[0] as MWNumericArray;
MWNumericArray x2 = agrsOut[1] as MWNumericArray;
c = (double[,])x1.ToArray();
d = (double[,])x2.ToArray();
//一定要注意最后c和d的转化,不同类型的转换差异很大厄
//ToArray()对应n*m的数组
//ToScalarDouble()对应单个数值
//ToVetor()对应1维数组
全部回答
- 1楼网友:迟山
- 2021-12-22 11:57
截取当前屏幕,另存为本地文件夹位置。
c#去读该图片放到picturebox里面即可。
- 2楼网友:毛毛
- 2021-12-22 10:27
MWArray[] result = myMatlabClass.FuncName(2, p1,p2);
MWNumericArray m0 = (MWNumericArray)result[0];
MWNumericArray m1 = (MWNumericArray)result[1];
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯