基本MATLAB中是否有一个函数返回变量的可打印表示形式,以便在eval或控制台中使用?

时间:2013-03-07 20:37:29

标签: matlab

例如,如果我将此矩阵存储在mat

0.9058    0.1270    0.9134
0.6324    0.0975    0.2785

是否有一些函数func(mat)会返回一个我可以传递给eval的字符串,或者在控制台上用来重新声明该变量,例如:

[0.9058,0.1270,0.9134;0.6324,0.0975,0.2785]

我还没有找到任何搜索documentation的内容,但我在其他语言中找到了这样的功能,例如Python的repr,在交互/控制台使用期间非常方便。

2 个答案:

答案 0 :(得分:4)

编辑:原来的答案完全是假的,这里更好:

mat2str(mat)怎么样?

http://www.mathworks.se/help/matlab/ref/format.html

  

str = mat2str(A)将矩阵A转换为字符串。这个字符串是   适合输入eval函数,使得eval(str)产生   原始矩阵精度在15位以内。

答案 1 :(得分:1)

替代解决方案是来自FileExchange的MATRIX2M。它也适用于3D矩阵,mat2str不能。虽然输出不是那么漂亮。

>> x = rand([1 2 2]);
>> Matrix2M('x')
ans =
x = zeros(1,2,2);
x(1,1,1) = 0.16218230819324275;
x(1,2,1) = 0.79428454068390697;
x(1,1,2) = 0.31121504204480488;
x(1,2,2) = 0.52853313550621273;

>> class(ans)
ans =
char