我在matlab中有一個雙精度數組,它的元素以十六進制格式輸出到一個文件中。我想輸出它沒有小數位,我似乎無法弄清楚當輸出的值是一個負數時如何做到這一點。我已經試過:十六進制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」;
對不起,如果這是顯而易見的,但它真的很難找到這個信息,因爲有這麼多不同的格式。
我想回答,卻誤解了這個問題。現在爲什麼你需要輸出十六進制的'double'值? – 2012-04-19 03:14:21
那麼他們實際上是所有的整數值。我只希望他們是整數,但我很確定它是一個雙打數組。四捨五入的效果會很好,但它不會。 – Dylan 2012-04-19 03:46:19
在MATLAB File Exchange中查看[Two's Complement for MATLAB](http://www.mathworks.com/matlabcentral/fileexchange/5485-twos-complement-for-matlab)。根據定義, – zellus 2012-04-19 06:44:28