1

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

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

x = disp(y);

以上失败并出现错误Too many output arguments. (我无法找到源代码disp。)

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

(请注意,此函数在传递字符串时应该表现得像身份。)

基本上我正在寻找 MATLAB 的 Python 等价物str。我认为它可能是char,但是(例如char(Inf)无法产生任何类似字符串的东西'Inf'。(注意:这只是一个例子。它并没有开始涵盖所有的可能性。

4

3 回答 3

4

pm89 的答案有正确的想法,但不起作用,因为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
于 2013-05-17T19:35:31.927 回答
3

它与 Python 的 不太一样str,但num2str可以使用Inf并处理字符串作为输入。

num2str(Inf)
ans = Inf
num2str('some string')
ans = some string
于 2013-05-17T16:47:32.067 回答
2

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

x = evalc('disp(y)'); % y could be anything displayable by Matlab!
于 2013-05-17T17:34:24.603 回答