调试从c#调用的matlab函数

时间:2015-08-08 16:17:52

标签: c# matlab debugging

我从C#调用* .m函数:

  matlab.Feval("shoulderDetector", 3, out result, pic, colorPicR, colorPicG, colorPicB);

当我编译时,这行打开matlab的命令窗口,并将4个变量(所有变量都来自实时摄像头)发送到肩部调用.m调用另外3个matlab函数...那里有一个错误"矩阵超过它指数..."有没有办法知道matlab中的数据是什么,而不在CMD matlab窗口中打印所有内容?

如果没有,检测错误的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

除非您想在用于调试Matlab代码的软件中进行调试,否则无法进行调试。我会在Matlab代码中将调试输出放到控制台中,您认为可以解决问题(例如,在有问题的矩阵附近)并输出索引和可能有用的任何其他信息。

答案 1 :(得分:1)

不幸的是,当您遇到不同的编程语言时,Matlab没有很好的解决方案调试解决方案。

我建议暂时用这个替换你的功能:

function varargout=genericSaveArgs(varargin)
varargout=cell(nargout,1);
callArgs=varargin;
save('callArgs.mat','callArgs');
end

保存参数,然后使用:

调用原始函数
cc=load('callArgs.mat')
[a,b,c]=shoulderDetector(cc.callArgs{:})