セル配列の内容でテキストファイルを作成しようとしています。以下はMWEです。ファイルの引数なしでfprintf
を使用すると(コマンドウィンドウでのみ印刷する場合、たとえばfprintf(['\t\\hline ',repmat('%s & ',1,size(A,1)),'\b\b','\\\\','\n'],A{:})
)、コードは正常に動作します。しかし、fopen
でファイルを開き、同じものを書き込もうとすると、二重バックスペース(\b\b
)は機能しません。fprintfからtxtファイル(MATLAB)で動作しないバックスペースを生成するための ' b'
MWE:
A = num2cell(rand(3,3));
fid = fopen('test.txt','w');
fprintf(fid,['\t\\hline ',repmat('%s & ',1,size(A,1)),'\b\b','\\\\','\n'],A{:})
私は、コマンド・ウィンドウに取得する:
\hline 7.922073e-01 & 9.594924e-01 & 6.557407e-01 \\
\hline 3.571168e-02 & 8.491293e-01 & 9.339932e-01 \\
\hline 6.787352e-01 & 7.577401e-01 & 7.431325e-01 \\
私は 'test.txtの' ファイルに何を得る:
\hline 7.922073e-01 & 9.594924e-01 & 6.557407e-01 & \\
\hline 3.571168e-02 & 8.491293e-01 & 9.339932e-01 & \\
\hline 6.787352e-01 & 7.577401e-01 & 7.431325e-01 & \\
と貼り付け'test.txt'の内容は、.txtファイルを正確に表示するのではなく、いくつかのボックスが表示されますペースが適用されているはずです(下図)。バックスペースを有効にして、.txtファイルの&
を削除するにはどうすればよいですか?
'A 'の内容が浮動小数点数の場合は、'%s'の代わりに '%f'を使用してください。 – rahnema1
@ rahnema1これで問題は解決しません。 – Rodrigues
[関連](https://stackoverflow.com/questions/43299376/writing-a-backspace-in-a-file/43299424).ItはバックスペースのASCIIコードをファイルに書き込みます。 – rahnema1