Igorでバイナリファルを読み込む。
ファイル名はabc.binでファイルの中身はdouble型が50個格納されている。double型は8バイトなので合計400バイトとなる。
メニューで
Data/Load Waves/Load General Binary File
をクリック。
型:Double float
Byte order:Low byte first (intel系の場合)
File:読み込むファイルを指定(今回はabc.bin)
実行後(Do it)
AppendToTable コマンドでテーブルに追加。以下のように読み込めた。
補足1:
データが行列のように1次元でない場合,その列毎にwaveを分けたかったりする。
その場合には,以下のようにプロシージャを作成すれば良い。
GBLoadWaveコマンドを,読み込むオフセットを設定し,for文で繰り返し実行している。
Function test()
String file_name=”C:test:abc.bin”
Variable i, offset_i
offset_i = 0
for (i=0;i<5;i+=1)
GBLoadWave /B /T={4,4} /N=$(“wave”+num2str(i)) /S=(offset_i) /W=1 /U=10 file_name
offset_i += 50
endfor
end
補足2:
今回は,C言語でバイナリファイルを作成した。ファイルの中身は,double型で10行5列に乱数を代入している。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#pragma warning(disable:4996)
int main(void)
{
int i,j;
double abc[10][5];
FILE *file;
for(i=0;i<10;i++){
for(j=0;j<5;j++){
abc[i][j]=rand();
printf(“%lf\n”,abc[i][j]);
}
}
file = fopen(“abc.bin”,”wb”);
fwrite(abc,sizeof(abc),1,file);
fclose(file);
return 0;
}