我正在运行一个预测某个地点水温的模型,该模型需要一些气象条件的初始输入。用户必须更改的输入存储在扩展名为.NML的文件中。我想访问这个文件(来自matlab)并使用一系列特定变量的值运行模型。例如,有一个名为“input_slope”的变量,用户必须指定该变量。我想为此变量运行具有许多不同值的模型,例如从1:100然后运行模型(应用程序文件)并将模型输出与我的观察值进行比较。
我对此非常陌生,想知道如何开始在matlab中更改输入文件,然后使用这些新值执行模型?
感谢您的时间。
答案 0 :(得分:0)
如果您想在Matlab中更改输入文件,我建议使用C
类文件IO函数,如fopen
,fgetl
和朋友。这是我从online docs修改的片段,我经常使用它作为模式:
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命令执行并从程序中获取返回值。我不确定你对这一切有多新,所以请告诉我这是否有用。