Matlab x=disp(y):“;输出参数太多“;
我正在寻找一种在MATLAB中将任何值转换为字符串的完全通用的方法 基本上,我想能够写一些像Matlab x=disp(y):“;输出参数太多“;,matlab,Matlab,我正在寻找一种在MATLAB中将任何值转换为字符串的完全通用的方法 基本上,我想能够写一些像 x = disp(y); 上述操作失败,错误为输出参数过多。(我无法找到disp的源代码) 是否有单个MATLAB函数用于将任何值转换为字符串 (请注意,传递字符串时,此函数的行为应类似于标识。) 基本上,我在寻找MATLAB与Python的str的等价物。我想它可能是char,但是(例如示例)char(Inf)无法生成类似字符串'Inf'的内容。(注意:这只是一个例子。它并没有涵盖所有的可能性。)它
x = disp(y);
上述操作失败,错误为输出参数过多。
(我无法找到disp
的源代码)
是否有单个MATLAB函数用于将任何值转换为字符串
(请注意,传递字符串时,此函数的行为应类似于标识。)
基本上,我在寻找MATLAB与Python的
str
的等价物。我想它可能是char
,但是(例如示例)char(Inf)
无法生成类似字符串'Inf'
的内容。(注意:这只是一个例子。它并没有涵盖所有的可能性。)它与Python的str
不太一样,但是num2str
使用Inf
并将字符串作为输入处理
num2str(Inf)
ans = Inf
num2str('some string')
ans = some string
它与Python的
str
不同,但是num2str
与Inf
一起工作,并将字符串作为输入处理
num2str(Inf)
ans = Inf
num2str('some string')
ans = some string
您可以使用evalc(计算并捕获结果)获得与您在命令窗口中看到的完全相同的字符串:
您可以使用evalc(计算并捕获结果)获得与您在命令窗口中看到的完全相同的字符串: 有正确的想法,但不起作用,因为
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
有正确的想法,但不起作用,因为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
我认为您走的是正确的道路,但这不起作用,因为
evalc
需要一个字符串作为输入。@shoelzer:Oops!是的,disp(y)应该是字符串。x=evalc('disp(y)');会有用的。谢谢所以请参考shoelzer的答案。我认为您走的是正确的道路,但这不起作用,因为evalc
需要一个字符串作为输入。@shoelzer:Oops!是的,disp(y)应该是字符串。x=evalc('disp(y)');会有用的。谢谢所以请参考shoelzer的答案。