我从C#调用* .m函数:
matlab.Feval("shoulderDetector", 3, out result, pic, colorPicR, colorPicG, colorPicB);
当我编译时,这行打开matlab的命令窗口,并将4个变量(所有变量都来自实时摄像头)发送到肩部调用.m调用另外3个matlab函数...那里有一个错误"矩阵超过它指数..."有没有办法知道matlab中的数据是什么,而不在CMD matlab窗口中打印所有内容?
如果没有,检测错误的最佳方法是什么?
答案 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{:})