So, while using Fread to open a 4 byte I used uint32 and uint64 for 8 byte value. But what should i do if i want to read a 12 byte value.( for a 6 byte i used ubit(6*8) but cant use 12*8. Any suggessions?
6 ビュー (過去 30 日間)
古いコメントを表示
Fread(fid, (precision) *ubit48, skip bytes) for a 6 byte value , so what precision should I use for 12 byte value? Thank you
0 件のコメント
回答 (1 件)
Jan
2016 年 4 月 30 日
data = fread(fid, 12, '*uint8');
Now you have the 12 single bytes. You can join the first 8 byte to a UINT64 using typecast:
low = typecast(data(1:8), 'uint64');
high = typecast(data(9:12), 'uint32');
But you see, that you cannot store the result in an integer tyoe with 96 bits directly, because Matlab does not habe such a type. Search for "Matlab vpa" to learn how to use arithmetics with variable precision.
3 件のコメント
Walter Roberson
2016 年 5 月 1 日
You cannot do that for 12 byte values. Instead loop reading 12 buttons at a time and then fseek() forward by the skip.
If you have a sequence that regular you should consider using memmapfile
参考
カテゴリ
Help Center および File Exchange で Numeric Types についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!