ファイルからデータを配列に格納し、その配列を2次元にプロットしたいのですが、
gnuplot> 0.104530 0.363922 ^ line 0: invalid command gnuplot> 0.330339 0.597326 ^ line 0: invalid command gnuplot> 0.368722 0.600021 ^ line 0: invalid command .....
というエラーが配列の要素数だけ表示され、プロットすることができません。
1時間ほどググってみたのですが、配列をプロットしている人がいないのか、解決には至りませんでした。もし詳しい方がいらっしゃいましたら、ご教示願います。
以下、コードです。ちなみにprintfで試しましたが、z[][]はすべての要素にちゃんと値が入っているようです。
#include <stdio.h> #include <stdlib.h> #include <math.h> #define DETA_NUM 100 //データ数 #define DETA_DIM 2 //データの次元 int main(void) { //変数の定義 double z[DETA_NUM][DETA_DIM]; int i; FILE*fp; fp = fopen("参照元のファイル","rb"); fread(&z[0][0],8,DETA_NUM*DETA_DIM,fp); fclose(fp); FILE *gp; gp = popen("Gnuplotのパス -persist ", "w"); // パイプを開き、gnuplotの立ち上げ for(i = 0; i<DETA_NUM; i++){ fprintf(gp, "%f\t%f\n",z[i][0],z[i][1]); } fflush(gp); pclose(gp); // パイプを閉じる return 0; }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。