Matlab x=disp(y):“;输出参数太多“;

Matlab x=disp(y):“;输出参数太多“;,matlab,Matlab,我正在寻找一种在MATLAB中将任何值转换为字符串的完全通用的方法 基本上,我想能够写一些像 x = disp(y); 上述操作失败,错误为输出参数过多。(我无法找到disp的源代码) 是否有单个MATLAB函数用于将任何值转换为字符串 (请注意,传递字符串时,此函数的行为应类似于标识。) 基本上,我在寻找MATLAB与Python的str的等价物。我想它可能是char,但是(例如示例)char(Inf)无法生成类似字符串'Inf'的内容。(注意:这只是一个例子。它并没有涵盖所有的可能性。)它

我正在寻找一种在MATLAB中将任何值转换为字符串的完全通用的方法

基本上,我想能够写一些像

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的答案。