Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调试从c调用的matlab函数#_C#_Matlab_Debugging - Fatal编程技术网

C# 调试从c调用的matlab函数#

C# 调试从c调用的matlab函数#,c#,matlab,debugging,C#,Matlab,Debugging,我从C#调用*.m函数: 当我编译时,这一行打开matlab的命令窗口,并将4个变量(所有变量都来自live camera)发送到shoulderDetector.m,后者调用另外3个matlab函数。。。有一个错误,“矩阵超过了它的指数…”有没有一种方法不在CMD matlab窗口中打印所有内容就可以知道matlab中的数据发生了什么 如果不是,那么检测bug的最佳方法是什么 除非您想在为调试Matlab代码而设计的软件中进行调试,否则无法进行调试。我会将调试输出放在Matlab代码中的控制台

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

当我编译时,这一行打开matlab的命令窗口,并将4个变量(所有变量都来自live camera)发送到shoulderDetector.m,后者调用另外3个matlab函数。。。有一个错误,“矩阵超过了它的指数…”有没有一种方法不在CMD matlab窗口中打印所有内容就可以知道matlab中的数据发生了什么


如果不是,那么检测bug的最佳方法是什么

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

不幸的是,当您遇到不同的编程语言时,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{:})

你能在Matlab中调试函数吗?是的,但是我发送给MATLAB的变量来自一个流式相机,我只能从C或C++得到!我明白,但是你不能以某种方式将数据导入matlab,或者编写一个测试函数来设置数据,然后调用有问题的函数吗?我记录了一个样本并发送了500帧到matlab,它工作正常。我在直播时遇到了一个问题,顺便说一句,这是Intel Realsense摄像头,我不知道如何将数据直播到matlab并在那里进行调试!不,这不是玩笑。您需要记录发生的事情,在任何地方添加日志代码。如果你不能调试,那就是你所能做的。如果您不能可靠地重现问题(在本文中,我的意思是向它提供一些输入并看着它崩溃),那么当问题发生时,您需要“在那里”。如果您无法调试,那么过多的日志记录是最好的选择。
cc=load('callArgs.mat')
[a,b,c]=shoulderDetector(cc.callArgs{:})