如何将matlab运行结果写入TXT文件
%%读取文件[fname,dirpath]=uigetfile('*.txt','文件打开对话框');ffname=[dirpathfname];Point=import...
%% 读取文件
[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)}); 展开
[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)}); 展开
1个回答
展开全部
例子
创建并【打开】文件
fid=fopen(文件名,‘打开方式’)
说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下:
‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。
‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。
‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。
‘a’:在打开的文件末端添加数据。文件不存在则创建。
‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。
写入字符串;
写入矩阵;
关闭文件;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询