如何将matlab运行结果写入TXT文件

%% 读取文件
[fname,dirpath]=uigetfile('*.txt','文件打开对话框');
ffname=[dirpath fname];
Point = importdata(ffname);
SizeXY=size(Point(:,1:2),1);%获取列数
figure(1)
plot3(Point(:,1),Point(:,2),Point(:,3));
%% 初始化
%X坐标取值范围
Xmax=max(Point(:,1));
Xmin=min(Point(:,1));
%Y坐标取值范围
Ymax=max(Point(:,2));
Ymin=min(Point(:,2));
%请输入阈值
Winnum1 = inputdlg('循环最小窗口1','最小窗口');
Wnum1 = str2num(Winnum1{1});
Winnum2 = inputdlg('循环最大窗口2','最大窗口');
Wnum2 = str2num(Winnum2{1});
Thre1 = inputdlg('高差阈值min','高差阈值');
Thred1 = str2num(Thre1{1});
Thre2 = inputdlg('高差阈值max','高差阈值');
Thred2 = str2num(Thre2{1});
%选取每个窗口的最小值
ratemax=0;
Point(:,5)=1;%初始化为非地面点
fid = fopen('Result.txt', 'w+');
%% 数据处理
for w=Wnum1:Wnum2 %窗口选择
for t=Thred2:-1:Thred1
da=(Xmax-Xmin)/w;
db=(Ymax-Ymin)/w;
for i=Xmin:da:(Xmax-da) %窗口遍历
for j=Ymin:db:(Ymax-db)
%选择一定窗口内的最小值
P=find(Point(:,1)>i & Point(:,1)<i+da & Point(:,2)>j & Point(:,2)<j+db);
hmin=min(Point(P,3));
m = find((Point(P,3)-hmin)<t);
Point(m,5)=0;%地面点赋值为零
end
end
%找到判断正确的点
correct=Point(:,5)-Point(:,4);
Cornum=size((find(correct==0)),1);
rate=Cornum/SizeXY;
fprintf(fid,'当窗口大小:%d ',w);
fprintf(fid,'阈值大小:%d ',t);
fprintf(fid,'正确率是:%f \n', rate);
%取出最大值
if ratemax<rate
ratemax = rate;
tmax = t;
wmax = w;
end
end
end

%% 保存结果
fclose(fid);
msgbox({'最后的正确率最高的为:',num2str(ratemax),'窗口大小为',num2str(wmax),'阈值大小为',num2str(tmax)});

    例子

    创建并【打开】文件

    fid=fopen(文件名,‘打开方式’)

    说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下:

    ‘r’:只读方式打开文件(默认的方式),该文件必须已存在。

    ‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。

    ‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。

    ‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。

    ‘a’:在打开的文件末端添加数据。文件不存在则创建。

    ‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。

    写入字符串; 

    写入矩阵;

    关闭文件;

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答