一、matlab的输出及写入文件的方法
当数字行列数不统一的时候,可以用importdata读取数据
format long g
s=load('G:\摄影测量影像各种数据\成灌快铁彭州支线(彭州南站-步行街站)\shiyan\controlp.txt'); %load读取TXT文本,除了 textread
[l,p]=xlsread('C:\Users\ludongdong\Desktop\图片信息left.xlsx'); % [a,b]=xlsread(‘ 路径.’.xlsx'),数据在a中,字符在b中
[r,t]=xlsread('C:\Users\ludongdong\Desktop\图片信息right.xlsx');
image=1070;
% pp=cell2mat(p);
% tt=cell2mat(t);
% ce1=cellstr(pp);
% ce2=cellstr(tt);
% n=length(pp(s(1,1),:));
kk=cell(length(s),1);
for i=1:length(s) %max(s(:,1))
k(i,1)=s(i,2)-1;
k(i,2)=s(i,2);
if s(i,1)<=image/2
k(i,3)=0;
k(i,4)=s(i,1)-1;
else
k(i,3)=1;
k(i,4)=s(i,1)-image/2-1;
end
k(i,6)=s(i,3);
k(i,7)=s(i,4);
if s(i,1)<=image/2
kk{i,1}=p{s(i,1),1};
else
kk{i,1}=t{s(i,1)-image/2,1};
end
end
k2=num2cell(k);
for i=1:length(s)
k2{i,5}=kk{i,1};
end
fp=fopen('C:\Users\ludongdong\Desktop\控制点2.txt','w'); %数字输出方法
for i=1:length(s)
for j=1:7
fprintf(fp,'%4.6f\t',k(i,j));
end
fprintf(fp,'\r\n');
end
fclose(fp);
fpp=fopen('C:\Users\ludongdong\Desktop\控制点3.txt','w'); %字符串输出方法
fwrite(fpp,'','integer*4');
for i=1:length(s)
for j=1:1
fprintf(fpp,'%s,',kk{i,j}); %黑色的逗号是添加的,让文字的后面出现逗号
end
fprintf(fpp,'\r\n');
end
fclose(fpp);
安利博客,关于matlab输出文件的方法:
https://zhidao.baidu.com/question/1111896529057986699.html?word=MATLAB%E5%A6%82%E4%BD%95%E8%AF%BB%E5%8F%96%E6%97%A2%E6%9C%89%E6%95%B0%E5%AD%97%E4%B9%9F%E6%9C%89%E6%96%87%E5%AD%97%E7%9A%84&ms=1&rid=10831879656367315608