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

时间:2013-05-17 16:44:53

标签: matlab

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

基本上,我希望能够写出类似

的内容
x = disp(y);

上述操作失败并显示错误Too many output arguments.(我无法找到disp的源代码。)

是否有单个MATLAB函数将 任何 值转换为字符串?

(请注意,传递字符串时,此函数的行为应与身份相同。)

基本上我在寻找MATLAB相当于Python的str。我认为它可能是char,但是(对于 示例 char(Inf)无法生成类似字符串'Inf'的内容。 (注意:这只是一个例子。它并未开始涵盖所有可能性。

3 个答案:

答案 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不完全相同,但num2strInf一起使用,并将字符串作为输入处理。

num2str(Inf)
ans = Inf
num2str('some string')
ans = some string

答案 2 :(得分:2)

您可以使用evalc获得与在命令窗口中看到的完全相同的字符串(评估并捕获结果):

x = evalc('disp(y)'); % y could be anything displayable by Matlab!