txtファイルから符​号付固定小数点の16​進数を読み込み、fi​オブジェクトを作る方​法を教えてください。

1 visualización (últimos 30 días)
K_S_
K_S_ el 22 de Jul. de 2022
Comentada: K_S_ el 25 de Jul. de 2022
下記のコードで作成される d.txt を読み込み、
元の符号付固定小数点の16進数のfiオブジェクト a_fiと同じ設定のfiオブジェクトを作成するにはどうしたらよいでしょうか。
(d.txtは、実際は外部で取得することを想定しています)
a = randn(1,10);
T = numerictype(true,64,60);
F = fimath('OverflowMode', 'saturate',...
'RoundMode', 'round',...
'SumMode', 'FullPrecision',...
'ProductMode', 'FullPrecision',...
'MaxProductWordLength', 256,...
'MaxSumWordLength', 256);
a_fi = fi(a,T,F);
b_fi = hex(a_fi);
c = strsplit(b_fi)';
writecell(c,"d.txt", QuoteStrings="none");

Respuesta aceptada

Atsushi Ueno
Atsushi Ueno el 22 de Jul. de 2022
a = randn(1,10);
T = numerictype(true,12,10);
F = fimath('OverflowMode', 'saturate',...
'RoundMode', 'round',...
'SumMode', 'FullPrecision',...
'ProductMode', 'FullPrecision',...
'MaxProductWordLength', 256,...
'MaxSumWordLength', 256);
a_fi = fi(a,T,F);
b_fi = hex(a_fi) % a_fi の値 (16進数で表示)
b_fi = 'e61 ca1 a3b 7ff 047 800 193 472 d97 f97'
c = strsplit(b_fi)';
writecell(c,"d.txt", QuoteStrings="none");
d = regexprep(fileread('d.txt'),'\n',' ') % 下記のコードで作成される d.txt を読み込み
d = 'e61 ca1 a3b 7ff 047 800 193 472 d97 f97 '
d_fi = fi(0,T,F); % 元の符号付固定小数点の16進数のfiオブジェクト a_fi と同じ設定の fi オブジェクトを作成
d_fi.hex = d; % d.txt の内容を16進数として d_fi に設定
a_fi == d_fi % d_fi が a_fi と同じ値か確認
ans = 1×10 logical array
1 1 1 1 1 1 1 1 1 1
  1 comentario
K_S_
K_S_ el 25 de Jul. de 2022
ありがとうございました。無事できました。

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 記述統計 en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!