gpt4 book ai didi

matlab - 在 Matlab 中将调试代码添加到错误消息中?

转载 作者:太空宇宙 更新时间:2023-11-03 19:38:01 24 4
gpt4 key购买 nike

在 Matlab 中,我经常需要处理来自其他人代码的矩阵,并且对于矩阵的方向(是否转置)以及是否添加特定行/列并不总是有明确的约定。因此,我花了很多时间调试以下错误

Error using  * 
Inner matrix dimensions must agree.

+.*- 等类似错误

如果我可以修改此错误消息以包含维度,这将节省我很多时间,这样我就知道要切换哪个维度,并可能猜测错误维度进入的位置。因此,我想以某种方式修改错误消息以包含手头的尺寸:

Error using  * 
Inner matrix dimensions must agree: 243 x 23 and 98 x 23.

这可能吗?如果可以,我该怎么做?我目前花了很多时间来添加/删除/测试打印出此信息的调试代码,因此任何使此更接近的解决方案都会有所帮助!

最佳答案

您可以使用 try-catch block :

a = rand(12);
b = rand(10);

try
c = a*b;
catch err
% Because err is read-only, generate new error structure
% We can copy most of old one

newerr.identifier = err.identifier;
newerr.cause = err.cause;
newerr.stack = err.stack;
newerr.message = sprintf('%s size(a): [%u, %u] size(b): [%u, %u]', err.message, size(a), size(b));
error(newerr) % Throw new error
end

现在我们得到:

Error using testcode (line 5)
Inner matrix dimensions must agree. size(a): [12, 12] size(b): [10, 10]

关于matlab - 在 Matlab 中将调试代码添加到错误消息中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32609356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com