【发布时间】:2015-05-11 14:59:18
【问题描述】:
您好,最近我正在尝试使用 matlab 函数获取结果,matlab 函数可以返回像图像一样的双精度数组,但是然后我在 C# 中通过对象类得到了双精度,但我无法转换为双精度对象类 有人可以帮助我
我已经解决了这个问题
MLApp.MLApp matlab = new MLApp.MLApp();
matlab.Execute(@"Path");
object result = null;
matlab.Feval("RemoveShadow", 1, out result, 12, 13);
var res = (result as object[]).Select(x => (double[,])x).ToArray();
object im = res.GetValue(0);
double[,] d = (double[,])im;
我已经解决了这个问题
【问题讨论】:
-
尝试使用
result.GetType()来查看它的确切类型(在调试器中,如果您正在使用控制台程序,则使用Console.WriteLine(result.GetType())) -
但我无法将对象类转换为双倍 什么不起作用?您收到错误消息了吗?
-
我收到“程序.exe 中发生'System.IndexOutOfRangeException' 类型的未处理异常”
-
如果你得到一个
IndexOutOfRangeException这意味着你正在尝试访问数组中不存在的索引。我注意到你打电话给res[1]。我们确定它有价值吗?数组具有从零开始的索引,这意味着第一个元素位于索引 0 而不是索引 1 -
很高兴您解决了问题。但永远不要,用答案更新你的问题。要么将其中一个答案标记为答案,要么添加您自己的答案并标记它。谢谢。祝你好运。
标签: c# type-conversion