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]

ドキュメントを検索することは何も思いつきませんでしたがrepr、インタラクティブ/コンソールの使用中に非常に便利な、Pythonなどの他の言語でのこのような関数を見つけました。

4

2 に答える 2

4

編集:元の答えは完全に偽物でした。より良いのは次のとおりです。

どうmat2str(mat)ですか?

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

str = mat2str(A) は行列 A を文字列に変換します。この文字列は、eval(str) が 15 桁以内の精度で元の行列を生成するように、eval 関数への入力に適しています。

于 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 に答える