R システムでのバイナリファイルの読み出しと書き込み(R システムを使用)
前準備
R システムのインストール
【関連する外部ページ】
R システムの CRAN の URL: https://cran.r-project.org/
バイナリファイルの読み出し
バイナリファイルの読み出しは,readBin() 関数を使って簡単に行えます. ここでは,4バイトの浮動小数データが並んだバイナリファイルの例を示す.
バイナリファイル作成用のプログラム
バイナリファイルの作成は writeBin() 関数を使って簡単に行えるのですが,ここでは「他のアプリが作ったバイナリファイルが読み出せるか」を確認したいので,C 言語で バイナリファイルを作成する.
#include<stdio.h> int write_param(float *total_u_x, float *total_u_y, unsigned short int width, unsigned short int height, char *filename){ int i,j; FILE *fp; fp=fopen(filename,"wb"); if(fp==NULL)return 0; fwrite(&width, sizeof(unsigned int), 1, fp); fwrite(&height, sizeof(unsigned int), 1, fp); for(j=0;j<height;j++){ fwrite(&total_u_x[j*width+0], sizeof(float), width, fp); } for(j=0;j<height;j++){ fwrite(&total_u_y[j*width+0], sizeof(float), width, fp); } printf("write parameter file.\n"); fclose(fp); return 0; } void main(){ int width=2; int height=2; float* ux=new float[width*height]; float* uy=new float[width*height]; for(int i=0;i<width*height;i++){ ux[i]=i*0.1; uy[i]=i*0.01; } write_param(ux,uy,width,height,"test.bin"); }
出来たバイナリファイル
出来たファイルは,test.bin
ファイルの中身は次の通り.
- ヘッダ
-
先頭1バイト: 幅 (幅は「2」に設定)
- 先頭1バイト: 高さ(高さは「2」に設定)
- 本体
幅×高さ×4バイト分のバイナリデータ.(4バイトの浮動小数が並ぶ).

バイナリファイルの読み出し,簡単な計算とグラフ表示の例
- n=... : データの個数
- what=... : データの種類
- signed=... : 符号なしなら FALSE
- endian=... : ビッグエンディアンかリトルエンディアンか
conn <- file("C:/R/R-2.8.0/test.bin", "rb") width <- readBin(conn, what=integer(), n = 1) height <- readBin(conn, what=integer(), n = 1) vx <- readBin(conn, what=double(), n = width * height, size = 4) vy <- readBin(conn, what=double(), n = width * height, size = 4) close( conn ) vx vy
【読み出しの例】

【計算とグラフ表示の例】

【出来たグラフ】
