2016-08-11 1 views
1

MatlabにMatrixのREFがあります。fopen関数を使用してMatlabのファイルにデータを正確に印刷する方法

REF=[0 1; 
    1 1; 
    2 1; 
    5 10; 
    10 0; 
    50 1; 
    100 2; 
    1000 1]; 

次のコードを使用してREFをファイルに保存するとします。

A1=REF(:,1); 
A2=REF(:,2); 
fileID = fopen('exp.txt','w'); 
fprintf(fileID,'%d %d\n', A1, A2); 
fclose(fileID); 

出力が望ましくない。どうすれば問題を解決できますか?

+0

"必要に応じて、出力ではありません"。あなたはvelocirraptorの本当に素敵な油絵を手に入れますか?皮肉には申し訳ありませんが、なぜあなたが望むものを手に入れられませんか? –

+0

出力は、同じ順序でREF行列にする必要があります。しかし、間違った順序で印刷されています。 –

答えて

2

dlmwritedlmreadを使用して、ファイルの読み書きを行います。

http://in.mathworks.com/help/matlab/ref/dlmwrite.html

M = 

    25.1327 3.1416 18.8496 
    9.4248 15.7080 21.9911 
    12.5664 28.2743 6.2832 

dlmwrite('myFile.txt',M,'delimiter','\t','precision',3) 
+1

これはリンクのみの回答です。コードを入力してください –

0

(あなたがたとえば、各行の後でより多くのものを記述する必要があるため)何らかの理由で、あなたはfprintfで行くことを好む、場合、ここでのループで心配がありません:

fileID = fopen('exp.txt','w'); 
for ii=1:size(REF,1) 
    fprintf(fileID,'%d %d\n', REF(ii,1),REF(ii,2)); 
end 
fclose(fileID); 
0

fprintfは、列の順序に従ってデータを書き込みます。したがって、適切な出力を得るには、REFを転記するだけです。だからあなたのfprintf呼び出しで:

fprintf(fileID,'%d %d\n', REF.'); 
0

変更wwtへと以下のように行わREFの転置を取る: -

fileID = fopen('exp.txt','wt'); 
fprintf(fileID,'%d %d \n', REF.'); 
fclose(fileID); 
関連する問題