0

我正在运行一个模型来预测某个位置的水温,该模型需要一些气象条件的初始输入。用户必须更改的输入存储在扩展名为 .NML 的文件中。我想访问该文件(来自 matlab)并使用特定变量的一系列值运行模型。例如,用户必须指定一个名为“input_slope”的变量。我想使用该变量的多个不同值运行模型,例如从 1:100 开始,然后运行模型(应用程序文件)并将模型输出与我的观察值进行比较。

我对此真的很陌生,想知道如何从更改 matlab 中的输入文件开始,然后使用这些新值执行模型?

感谢您的时间。

4

1 回答 1

0

如果您想在 Matlab 中更改输入文件,我会推荐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);

看起来这是一个外部可执行程序,所以我建议使用系统命令来执行并从程序中获取返回值。我不确定你对这一切有多陌生,所以请让我知道这是否有帮助。

于 2012-09-19T17:36:38.570 回答