gpt4 book ai didi

Matlab:使用 fprintf 时出错

转载 作者:太空宇宙 更新时间:2023-11-03 20:00:17 25 4
gpt4 key购买 nike

这是别人写的脚本,我不明白为什么会给我这个错误(我不太懂Matlab,但这看起来是一个相当简单的脚本,所以我有点难倒)。文件以

开头
    clear all
filein=['Runs/'];
Namein1=['AIC'];
Nameout=['Nash'];

然后它会进行一系列计算以获得 Nash-Sutcliffe 系数(对于这个问题并不重要),然后尝试将结果写入一个文件:

    %Write Nash
%Output file writing
%Write file header
D={'Conbination','Nash with Error','Nash-error','RMSE','RMSE-error',...
'AIC', 'MinNash', 'MaxNash'};
NameOut=[filein,Nameout, '.txt'];
fileID = fopen(NameOut,'w');
for i=1:length(D)-1
fprintf(fileID,'%s\t',D{i});

然后是更多内容,但这是我收到错误消息的地方:

    Error using fprintf
Invalid file identifier. Use fopen to generate a valid file identifier.

Error in Nash_0EV_onlyT (line 169)
fprintf(fileID,'%s\t',D{i});

我不明白这里有什么问题?该脚本指定文件,并使用 fopen...?是不是应该用 fopen 语句创建文件 Nash.txt(我的文件夹 Runs/中目前不存在该文件)?我错过了什么?谢谢!

PS 我在装有 OSX 10.8 的 MacBook Pro 上运行 Matlab2013a(通过大学的团体许可)

最佳答案

在再次调用此脚本之前尝试使用fclose all。通常在测试时,文件句柄永远不会释放(在文件关闭之前发生错误),导致同一文件上的 fopen 失败。

更好的方法是使用更安全的结构:

NameOut = [filein Nameout '.txt'];

fileID = fopen(NameOut,'w');

if fileID > 0
try
for i = 1:length(D)-1
fprintf(fileID,'%s\t',D{i});
end
fclose(fileId);

catch ME
fclose(fileId);
throw(ME);

end

else
error('Error opening file.');

end

关于Matlab:使用 fprintf 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com