0

特定の場所の水温を予測するためのモデルを実行していますが、モデルには気象条件の初期入力が必要です。ユーザーが変更する必要のある入力は、拡張子が.NMLのファイルに保存されます。(matlabから)このファイルにアクセスし、特定の変数の値の範囲でモデルを実行したいと思います。たとえば、ユーザーが指定する必要のある「input_slope」という変数が1つあります。この変数のさまざまな値を使用してモデルを実行したいと思います。たとえば、1:100からモデルを実行し、モデル(アプリケーションファイル)を実行して、モデルの出力を観測値と比較します。

私はこれに本当に慣れていないので、matlabで入力ファイルを変更することから始めて、これらの新しい値でモデルを実行する方法を知りたいですか?

お時間をいただきありがとうございます。

4

1 に答える 1

0

Matlabで入力ファイルを変更する場合は、、、およびfriendsなどのCファイルIO関数をお勧めします。これは、私がパターンとして頻繁に使用するオンラインドキュメントから変更したスニペットです。fopenfgetl

fid = fopen('fgetl.m');

file_data = {};
tline = fgetl(fid);
while ischar(tline)
    file_data{end+1} = tline;
    tline = fgetl(fid);
end

fclose(fid);

セル配列のサイズを初期化しないことについて不満を言う人もいますが、file_dataとりあえず立ち上がって実行しましょう。セル配列には、ファイル内の改行が削除された各行の文字列が含まれます。次のように文字列にアクセスできます。

str = file_data{1};

次にstr、データを含む文字配列です。textscanを使用して、値から数値や文字列などを取得できstrます。

データを書き出す必要がある場合は、次のような方法を試すことができます。

fid = fopen('myOutputFile.txt','w');
% data is in data and is an array of floating point numbers
for ii=1:length(data)
   fprintf(fid,'%f\n',data(ii));
end
fclose(fid);

これは外部で実行可能なプログラムのように見えるので、systemコマンドを使用して実行し、プログラムから戻り値を取得することをお勧めします。あなたがこれらすべてにどれほど新しいかはわかりませんので、これが役に立ったかどうか教えてください。

于 2012-09-19T17:36:38.570 に答える