matlabに要素が16進形式のファイルに出力されているdouble配列があります。小数点以下の桁数で出力したいので、出力される値が負の数であるときにこれを行う方法を理解できないようです。私が試した:誤った形式のMatlab出力がありません
>> A = ones(1,4);
>> fid = fopen('test.txt', 'r');
>> value = A(2);
>> fid = fopen('test.txt', 'w');
>> fprintf(fid,'%x\r\n', value);
>> fprintf(fid,'%.0x\r\n', value);
>> value = -value;
>> fprintf(fid,'%.0x\r\n', value);
>> fprintf(fid,'%0.0x\r\n', value);
>> fprintf(fid,'%0.0x\r\n', value);
>> fprintf(fid,'%1.0x\r\n', value);
>> fprintf(fid,'%x\r\n', value);
し、出力ファイルには、次のようになります。
1
1
-1e+000
-1e+000
-1e+000
-1e+000
-1.000000e+000
私は本当にただプリントアウトできるようにしたい「-1」;
申し訳ありませんが、これは明らかですが、非常に多くの異なるフォーマットがあるので、この情報を見つけるのは本当に難しいです。
は私が答えることを試みたが、質問を誤解。なぜ、二重値を16進数で出力する必要がありますか? –
これは実際にはすべて整数値です。私はそれらを整数にしたいだけですが、それは2倍の配列であると確信しています。それがうまくいくと丸めはうまくいくが、そうはしない。 – Dylan
MATLAB File Exchangeの[Two's Complement for MATLAB](http://www.mathworks.com/matlabcentral/fileexchange/5485-twos-complement-for-matlab)をご覧ください。 – zellus