У меня есть двойной массив в matlab, элементы которого выводятся в файл в шестнадцатеричном формате. Я хочу вывести его без десятичных знаков, и я не могу понять, как это сделать, когда выводимое значение является отрицательным числом. Я пробовал:Hexidecimal 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» в шестнадцатеричном формате? –
Ну, они на самом деле целые значения. Я хочу, чтобы они были целыми числами, но я уверен, что это массив удвоений. Округление будет хорошо, если это сработает, но это не так. – Dylan
Посмотрите на [Two's Complement for MATLAB] (http://www.mathworks.com/matlabcentral/fileexchange/5485-twos-complement-for-matlab) в MATLAB File Exchange. – zellus