我在Matlab中寻找一个用于错误消息的函数,如下所示:
error(['Invalid value for someVariable: ' wantedFunction(someVariable)]);
Run Code Online (Sandbox Code Playgroud)
我希望wantedFunction能够接受字符串,数组,单元格数组,理想情况下甚至是结构数组.
现在,我正在使用num2str,但这对细胞不起作用.我认为我想要的可以完成sprintf,但我还没弄明白.我想我可以编写自己的函数,但如果已经有一种方法可以在Matlab中执行此操作,那将是多余的.有任何想法吗?
Rod*_*uis 14
是的,虽然这不是直截了当的.你必须disp结合使用evalc:
string = evalc(['disp(someVariable)'])
Run Code Online (Sandbox Code Playgroud)
您可以将其转换为更易于管理的形式:
toString = @(var) evalc(['disp(var)']);
Run Code Online (Sandbox Code Playgroud)
所以,举个例子:
>> var = {rand(3,1), 'A', struct('test', 5)};
>> error(['Invalid value for var: ' toString(var)])
??? Invalid value for var: [3x1 double] 'A' [1x1 struct]
Run Code Online (Sandbox Code Playgroud)