matlab怎样将元组的值输出到文本信息中_如何将matlab运行结果写入TXT文件

%%读取文件[fname,dirpath]=uigetfile('*.txt','文件打开对话框');ffname=[dirpathfname];Point=importdata(ffname);SizeXY=size(Point(:,1:2),1);%获取列数figure(1)plot3(Point(:,1...

%% 读取文件

[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)j & Point(:,2)

hmin=min(Point(P,3));

m = find((Point(P,3)-hmin)

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

ratemax = rate;

tmax = t;

wmax = w;

end

end

end

%% 保存结果

fclose(fid);

msgbox({'最后的正确率最高的为:',num2str(ratemax),'窗口大小为',num2str(wmax),'阈值大小为',num2str(tmax)});

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值