我正在寻找一种将 任何 值转换为MATLAB中的字符串的完全通用的方法。
基本上,我希望能够写出类似
的内容x = disp(y);
上述操作失败并显示错误Too many output arguments.
(我无法找到disp
的源代码。)
是否有单个MATLAB函数将 任何 值转换为字符串?
(请注意,传递字符串时,此函数的行为应与身份相同。)
基本上我在寻找MATLAB相当于Python的str
。我认为它可能是char
,但是(对于 示例 )char(Inf)
无法生成类似字符串'Inf'
的内容。 (注意:这只是一个例子。它并未开始涵盖所有可能性。)
答案 0 :(得分:4)
pm89's answer有正确的想法,但不起作用,因为evalc
需要字符串作为输入。我建议你自己做这样的功能:
function str = anything2string(thing)
str = evalc('disp(thing)');
它适用于Matlab可以显示的任何内容:
>> anything2string(3)
ans =
3
>> anything2string(Inf)
ans =
Inf
>> anything2string('hi')
ans =
hi
>> anything2string(1:4)
ans =
1 2 3 4
答案 1 :(得分:3)
它与Python的str
不完全相同,但num2str
与Inf
一起使用,并将字符串作为输入处理。
num2str(Inf)
ans = Inf
num2str('some string')
ans = some string
答案 2 :(得分:2)
您可以使用evalc获得与在命令窗口中看到的完全相同的字符串(评估并捕获结果):
x = evalc('disp(y)'); % y could be anything displayable by Matlab!