3

例如,如果我将此矩阵存储在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]

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

4

2 回答 2

4

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

怎么样mat2str(mat)

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

str = mat2str(A) 将矩阵 A 转换为字符串。此字符串适用于 eval 函数的输入,以便 eval(str) 生成精度在 15 位以内的原始矩阵。

于 2013-03-07T20:40:11.510 回答
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
于 2013-03-07T22:25:27.077 回答