2011-06-26 11 views
0

Matlabを使用して計算結果を読み込んで処理しています。私はfopenを使う。MATLAB newbie:ファイル名が文字列に格納されているときにファイルの読み込みに問題があります

私の問題は、現在、処理コードで使用するたびに各ファイルへのパスを指定する必要があることです。たとえば、これは動作します:

fid = fopen('/Users/me/Desktop/Result1/velocity.tbl', 'r+'); 
liqmass = textscan(fid, '%f %*f %*f %*n %f %*n %*n %*n %*n %*n %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f', 'headerlines', 1, 'delimiter', ',', 'CollectOutput', 1); 
fclose(fid); 

しかし、私はこれをしたい:

velocityOut = '/Users/me/Desktop/Result1/velocity.tbl'; % Specify a path once in an easy-to-reach place 
fid = fopen(velocityOut, 'r+'); 
    liqmass = textscan(fid, '%f %*f %*f %*n %f %*n %*n %*n %*n %*n %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f %*f', 'headerlines', 1, 'delimiter', ',', 'CollectOutput', 1); 
    fclose(fid); 

は、しかし、私は次のエラーを取得: を???未定義関数または変数 'velocityOut'。

なぜ動作しないのかわかりません。誰かが私の間違いを指摘できるなら、私はとても感謝しています。ありがとうございました。

+1

これはうまくいくはずです。おそらく、残りの部分を評価する前に 'velocityOut'を評価していないかもしれません。すべての変数をクリアして4行すべてを評価してみることはできますか? – abcd

+0

ありがとうたくさんのyoda ...私はあなたを正しく理解していれば、私のm-ファイルから行を取り出してコマンドウィンドウで個別に入力すると言っています。私はそれをし、それは動作します!私はmファイルで同じことがうまくいかない理由を理解していません。 velocityOutの定義は、確実にfopen呼び出しの前にあります。何か案は? – Ant

+0

私はばかなヨーダです。あなたはまさに正しいです。理解した。どうもありがとう!!あなたの答えを正しく記入する方法は、コメントであるため、私は見ていません。私はあなたに信用を与えたいと思います。 – Ant

答えて

0

上記のコードは正しく、うまくいくはずです。 fopenで使用しようとする前に、velocityOutと評価されていない可能性があります。したがって、コマンドウィンドウから作業している場合は、最初に評価する必要があります。または、スクリプト内にある場合は、fopenより前にを定義する必要があります。

関連する問題