[解決済み] EOFを期待、'<something>'を発見。
質問
初めて投稿するので、簡単に説明します。私はProcessingを使って、いくつかの質量分析データのプロットを作成しようとしています。私は、擬似XMLからテーブルにデータをパースし、このデータを2軸(時間、mz)上の点として、第3軸(信号)を点の色としてプロットするスケッチを書きたかったのです。
この段階では、データの次元に合わせたプロットをしたいのです。私のテストデータでは、X軸に38個の時間ポイント、Y軸に51個のmzポイント、0から12,000の範囲の信号があります。実際のデータセットの境界は、すべての次元で100倍も大きくなります。
私の問題は、プロットの幅と高さがデータに依存し、これらの限界を確立するために、ちょっとしたコードが必要なことです。Processingでは size() の直後に void setup() ということで、計算コードを全部先に入れました。これがタイトルエラーを投げました。私はそれを回避することができなかったので、データを3つのcsvファイルに出力し、そのデータをインポートしてプロットするために2番目のスケッチに取り掛かりました。私は同じエラーに遭遇しました。
正確なエラーは EOF を期待、'' を発見 ここで、行の最初の単語を指定することができます。これまでは に対して , mzTable と もし は、私が試したコードによります。
2つ目のスケッチの全貌はこちらです。
import java.io.*;
int debug = 1;
String target = "M1A crop.txt"; // test data
File file = new File(target);
// ~ ~ ~
String folderPath = file.getParent(); // target folder path
String name = file.getName();
String mzData = folderPath + "\\" + name + " - mz data.csv" ; // CSV file to open
String signalData = folderPath + "\\" + name + " - signal data.csv" ; // CSV file to open
String summaryData = folderPath + "\\" + name + " - summary data.csv" ; // CSV file to open
Table mzTable = new Table();
Table signalTable = new Table();
Table summaryTable = new Table();
mzTable = loadTable(mzData, "header");
signalTable = loadTable(signalData, "header");
summaryTable = loadTable(summaryData, "header");
int timeMin = summaryTable.getInt(0, "timeMin");
int timeMax = summaryTable.getInt(0, "timeMax");
int mzMin = summaryTable.getInt(0, "mzMin");
int mzMax = summaryTable.getInt(0, "mzMax");
int signalMin = summaryTable.getInt(0, "signalMin");
int signalMax = summaryTable.getInt(0, "signalMax");
width = mzTable.getColumnCount(); // this is the number of time points on the X axis
height = mzMax - mzMin; // this is the number of mz points on the Y axis
println("time Min: " + timeMin + ", Max: " + timeMax);
println("mz Min: " + mzMin + ", Max: " + mzMax);
println("signal Min: " + signalMin + ", Max: " + signalMax);
void setup() {
size(width, height);
} // end of void setup()
void draw() {
for(int x = 0; x < height; x++) {
for(int y = 0; y < width; y++) {
stroke(map(signalTable.getInt(x, y), signalMin, signalMax, 0, 255));
point(x, y);
}
}
}
エラーの原因は19行目からと特定されました。
mzTable = loadTable(mzData, "header");
私はハッカーではありませんが、このコードには何も問題がないように見えます。からのすべてをコメントアウトすると void setup() その後にコードが実行されるので、その関数の外にインポートおよびサマリーコードを持つことに関係する何か。もしその前に悪いコード、例えば単に for( というメッセージが表示され、expecting EOF, found 'for' と表示されます。誰か理由を教えてください。
よろしくお願いします。
クリス
edited for derp 20:20 1-5-15
22:00 1-5-15 を編集 私はちょうどProcessing 3.0a7でスケッチを試したところ、エラー報告がより良くなりました。それは、ライン19で異なるエラーを識別しました。 トークンの構文エラー、これらのトークンを削除してください。 . このエラーを検索すると、この質問にたどり着き、診断の示唆を得ることができました。 トークンのシンタックスエラー、これらのトークンを削除してください。
解決方法は?
スケッチの一番上にあるべきは
宣言
. の再割り当てや呼び出しのようなランダムなコードはダメです。
println()
関数があります。そのようなコードは、関数の中に入れる必要があります。
例えば、この行は宣言なので問題ありません。
Table mzTable = new Table();
しかし、この行は宣言ではないので、ダメです。
mzTable = loadTable(mzData, "header");
そのエラーを修正するには、それらを1つの宣言行にまとめるとよいでしょう。
Table mzTable = loadTable(mzData, "header");
同様に、宣言ではないので、関数の外側にこのような呼び出しをすることはできません。
println("time Min: " + timeMin + ", Max: " + timeMax);
それらを取り除く
println()
関数を使用するか、setup()関数に移動させてください。
これらの行と同じです。
width = mzTable.getColumnCount(); // this is the number of time points on the X axis
height = mzMax - mzMin; // this is the number of mz points on the Y axis
これらは宣言ではないので、関数の中に入れる必要があります。こんな感じにしてみてください。
void setup() {
width = mzTable.getColumnCount(); // this is the number of time points on the X axis
height = mzMax - mzMin; // this is the number of mz points on the Y axis
size(width, height);
}
しかし、このようにwidthとheightの変数を使うのは良くないと思うので、代わりに次のようにするのが良いだろう。
void setup() {
size(mzTable.getColumnCount(), mzMax - mzMin);
}
すると、処理によってwidthとheightの変数が設定されます。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン