2016-11-01 4 views
1

私はファイルへのオブジェクトの表現を書いています。 ITSはMatlabは合理的なフォーマットでファイルを出力する

<key>:<value>\n 

は今、私は出力に複数の行列を持つこの単純な形式に従うが、標準の方法は、

f = open('somefile', 'w+t'); 
fprintf(f,'size:'); 
fprintf(f,'%+.4f\n', someObject.size); 

非常に醜いしかし、これはちょうどこの

size: 5.1234 
3.1234 
2.5421 
232332 
ようunreadbleファイルになります

何百行もあります。私はPythonでこれを行う場合は/ numpyの(f.write("size: " + str(someObject.size) + "\n")は、私はそれが形状を保持し、それを正しく整列

size:[[5.1234 3.1234 2.5421 232322] 
[5.1234 3.1234 2.5421 232322].... 

のような読みやすい何かを得ます。どのように私はmatlabでこれを行うのですか?

答えて

1

fprintfコマンドを分割する必要があります。あなたは

numpy_like_fprintf(f, '%+.4f', someObject.size); 

また、あなたは多くのPythonのstr()のように、文字列に配列を変換するnum2str を使用することができますすることができます今

function numpy_like_fprintf(fid, format_single_element, values) 
fprintf(fid, '['); 
fprintf(fid, [' ',format_single_element], values); 
fprintf(fid, ' ]\n'); 

:auxilary機能を使用してください。
番号が文字列に変換される方法を書式設定できることに注意してください。num2str

関連する問題