1
目的は、無損失でMatlabからデータを保存して交換することです。ファイルから16進数の2倍のデータを効率的に読み込むには?
>> a
a(:,:,1) =
0.8147 0.1270 0.6324
0.9058 0.9134 0.0975
a(:,:,2) =
0.2785 0.9575 0.1576
0.5469 0.9649 0.9706
は、我々はファイル
fp = fopen('test.dat','w');
fprintf(fp, '%bX ',a);
に16進数などのデータを保存し、ターンでは、我々はこれらを読む必要が
3FEA1237688ABA7B 3FECFC3F5F570C7D 3FC0411A9F807B7C 3FED3A6000E256BF 3FE43C49753B9024 3FB8F8687182D4C0 3FD1D2EA3181CE68 3FE1800DABF8B5E0 3FEEA3E55FFC605B 3FEEE05DEBDEEB6B 3FC42CAA5B9D0950 3FEF0F1897ECA804
得ることができます。たとえば、double配列を与えられましたデータをMatlabに正しく入力してください。ただし、fscanf()には対応する "%bX"形式はありません。私が検索しましたし、それを一つ一つを行うことができます:
for k = 1 : xx
tmp = fscanf(fp,'%s ',[1 1]);
b(k) = hex2num(tmp);
end
それが効率的にMATLABにこれらのデータを読み込む方法については、特に大規模なデータのための効率的ではないので?むしろループより
はあなたに感謝し、当社の各16進数を解析する
textscan
を使用することです。関数strsplit()は新しいバージョンのMatlabにのみ存在するようです。 – lxg@lxg古いバージョンの代替として更新されました。 – Suever
ありがとう!今はとても速いです。 – lxg