0

私は要素が16進形式でファイルに出力されているmatlabのdouble配列を持っています。小数点以下の桁数なしで出力したいのですが、出力される値が負の数の場合、これを行う方法がわかりません。私はもう試した:

    >> 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」を出力できるようにしたいだけです。

これが明らかである場合は申し訳ありませんが、非常に多くの異なる形式があるため、この情報を見つけるのは非常に困難です.

4

1 に答える 1

1

に変更value = -value;してみましたvalue = round(-value);か?

または、絶対値のみを出力しますが、値が負の場合は「-」を前に付けます。

if value < 0, 
  fprintf('-%x', abs(value));
else
  fprintf('%x', abs(value));
end
于 2012-04-19T03:12:50.540 に答える