MATLAB文件操作总结_第1页
MATLAB文件操作总结_第2页
MATLAB文件操作总结_第3页
MATLAB文件操作总结_第4页
MATLAB文件操作总结_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文本文件文本文件读读 如果文本文件中包含字符数据,分两种情况(分隔符是逗号或者是空格),读出后都要存到结构数组中。1. 分隔符是逗号有一个文本文件有一个文本文件shiyan1.txt,其内容:其内容:a1,4147137.113,435528.628,4.334a2,4147085.687,435703.391,4.858a3,4147055.74,435802.683,5.649a4,4146999.55,435975.881,4.861a5,4147007.645,436132.184,4.215将shiyan1.txt读到结构数组zb,程序如下:clc;clear all;fp=fope

2、n(shiyan1.txt,r);mm=0; %点数点数zb=;while (feof(fp) mm=mm+1; line=fgetl(fp); my=findstr(line,); %- zb(mm).dm=line(1:my(1)-1); zb(mm).x=str2num(line(my(1)+1:my(2)-1); zb(mm).y=str2num(line(my(2)+1:my(3)-1); zb(mm).z=str2num(line(my(3)+1:end);endfclose(fp);将shiyan1.txt读到结构数组zb,程序如下:clc;clear all;F,P=uiget

3、file(*.txt;*.dat);fm=P F; %注意注意P、F的值的值fp=fopen(fm,r);mm=0; %点数点数zb=;while (feof(fp) mm=mm+1; line=fgetl(fp); my=findstr(line,); %- zb(mm).dm=line(1:my(1)-1); zb(mm).x=str2num(line(my(1)+1:my(2)-1); zb(mm).y=str2num(line(my(2)+1:my(3)-1); zb(mm).z=str2num(line(my(3)+1:end);endfclose(fp);2. 分隔符是空格有一个文

4、本文件有一个文本文件shiyan2.txt,其内容:其内容:a1 4147137.113 435528.628 4.334a2 4147085.687 435703.391 4.858a3 4147055.74 435802.683 5.649a4 4146999.55 435975.881 4.861a5 4147007.645 436132.184 4.215将shiyan2.txt读到结构数组zb,程序如下:clc;clear all;fp=fopen(shiyan2.txt,r);mm=0; %点数点数zb=;while (feof(fp) mm=mm+1; zb(mm).dm=fsc

5、anf(fp,%s,1); %注意字符串的读法注意字符串的读法 zb(mm).x=fscanf(fp,%f,1); zb(mm).y=fscanf(fp,%f,1); zb(mm).h=fscanf(fp,%f,1); endfclose(fp);文本文件文本文件写写 将结构数组将结构数组zb的数据写到文本文件中的数据写到文本文件中格式如下格式如下文本文件文本文件shiyan3.txt的格式如下:的格式如下:a1,4147137.113,435528.628,4.334a2,4147085.687,435703.391,4.858a3,4147055.74,435802.683,5.649a4

6、,4146999.55,435975.881,4.861a5,4147007.645,436132.184,4.215clc;clear all;fp=fopen(shiyan2.txt,r);mm=0; %点数点数zb=;while (feof(fp) mm=mm+1; zb(mm).dm=fscanf(fp,%s,1); zb(mm).x=fscanf(fp,%f,1); zb(mm).y=fscanf(fp,%f,1); zb(mm).h=fscanf(fp,%f,1); endfclose(fp);%-%将结构数组将结构数组zb,存到另一个文件中,存到另一个文件中%已知结构数组已知结构

7、数组zb的数据格式为的数据格式为mmfilename2=shiyan3.txt;fn=fopen(filename2,a);for i=1:mm line=zb(i).dm , num2str(zb(i).x) , num2str(zb(i).y) , num2str(zb(i).h) %先将一行变为字符串先将一行变为字符串 fprintf(fn,%sn,line); %写入文件,写入文件,n表示回车换行表示回车换行endfclose(fn);文本文件文本文件写写 将结构数组将结构数组zb的数据写到文本文件中的数据写到文本文件中格式如下格式如下文本文件文本文件shiyan4.txt的格式如下:

8、的格式如下:a1 4147137.113 435528.628 4.334a2 4147085.687 435703.391 4.858a3 4147055.74 435802.683 5.649a4 4146999.55 435975.881 4.861a5 4147007.645 436132.184 4.215clc;clear all;fp=fopen(shiyan1.txt,r);mm=0; zb=; %mm点数点数while (feof(fp) mm=mm+1; line=fgetl(fp); my=findstr(line,); %- zb(mm).dm=line(1:my(1)

9、-1); zb(mm).x=str2num(line(my(1)+1:my(2)-1); zb(mm).y=str2num(line(my(2)+1:my(3)-1); zb(mm).z=str2num(line(my(3)+1:end);endfclose(fp);%-filename2=shiyan4.txt;fn=fopen(filename2,w);for i=1:mm fprintf(fn,%8s,zb(i).dm); %dm是是8位字符位字符 fprintf(fn,%15.3f,zb(i).x); %15.3f表示表示15位整数,位整数,3位小数位小数 fprintf(fn,%16

10、.3f,zb(i).y); fprintf(fn,%10.3fn,zb(i).z); endfclose(fn);下面上课讲得内容注意分清文本文件带有字符数据和全是数值数据编程读写时的区别(带有字符的用精确读法)nsave filename 变量名表 -append -ascii %将内存变量以二进制或ascii格式存储 %变量名表以空格分隔nLoad filename 变量名表 -ascii %将存贮的变量恢复1、内存变量的读写csvwrite(vvv.csv,a,1,2)b=csvread(vvv.csv,1,2)2、Csv文件的读写a=xlsread(vvv.xls)a = 1 2 3

11、4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8n= xlsread(vvv.xls,1,a2:b4)n = 2 3 3 4 4 53、excel文件的读写有一个文本文件有一个文本文件shiyan.dat,其内容:其内容:4,4147137.113,435528.628,4.3345,4147085.687,435703.391,4.8586,4147055.74,435802.683,5.6497,4146999.55,435975.881,4.8618,4147007.645,436132.184,4.215只要是数字,不论是逗号还是空格,都可用只要是数字,不论是逗号还是

12、空格,都可用N=importdata(shiyan.dat)N = 1.0e+006 * 0.0000 4.1471 0.4355 0.00000.0000 4.1471 0.4357 0.0000 0.0000 4.1471 0.4358 0.0000 0.0000 4.1470 0.4360 0.0000 0.0000 4.1470 0.4361 0.00004、importdata命令的用法建立文本文件建立文本文件leica.txtleica.txt: 20 50122.563 79997.730 401.11320 50122.563 79997.730 401.113 21 5012

13、2.794 80011.106 401.085 21 50122.794 80011.106 401.085 22 50004.381 80007.744 399.831 22 50004.381 80007.744 399.831 23 50119.260 79997.344 401.181 23 50119.260 79997.344 401.181 24 50006.659 80024.175 399.504 24 50006.659 80024.175 399.504 25 50105.337 79995.006 400.849 25 50105.337 79995.006 400.8

14、49二、二、leica全站仪数据读取全站仪数据读取filename1=leica.txtfilename1=leica.txt;fpfp=fopen(filename1,r);=fopen(filename1,r);i=0;i=0;while feof(fpwhile feof(fp) ) i=i+1; i=i+1; for j=1:4 for j=1:4 zb(i,j zb(i,j)=fscanf(fp,%f,1); )=fscanf(fp,%f,1); end endendendfclose(fpfclose(fp););例例4-2 leica全站仪数据读取的典型程序全站仪数据读取的典型程

15、序三、三、Nikon和和GPSRTK数据格式数据格式3,49510.3110,80362.3190,405.8240,s50 63,49488.9080,80426.0080,408.8490,S77164,49461.2960,80462.3610,408.9950,S77165,49457.2500,80485.8770,409.4490,S81166,49476.6650,80395.8870,408.1090, 167,49475.1380,80398.7300,408.1570, 298,49465.2360,80593.9700,415.1290,filename1=nikon.t

16、xt;fp=fopen(filename1,r);i=0;zb=;%坐标矩阵为空坐标矩阵为空while feof(fp) %文件结尾时文件结尾时feof(fp)=0,其它为,其它为1,也可以用也可以用feof(fp)=0代替代替 line=fgetl(fp); %从文件中读取一行,放到字符串从文件中读取一行,放到字符串line中中 my=findstr(line,);%从字符串中找出逗号位置,存放在从字符串中找出逗号位置,存放在my中中 zb(i).dh=line(1:my(1)-1); %取出点号放到结构体取出点号放到结构体zb中,域名为中,域名为dh(字符型数据字符型数据) zb(i).x

17、=str2num(line(my(1)+1:my(2)-1); %取出取出X坐标放到坐标放到zb.x中中 zb(i).y=str2num(line(my(2)+1:my(3)-1); %取出取出Y坐标放到坐标放到zb.y中中 zb(i).h=str2num(line(my(3)+1:my(4)-1); %取出高程放到取出高程放到zb.h中中 zb(i).dm=line(my(4)+1:end); %取出点名放到结构体取出点名放到结构体zb.dh i=i+1;endfclose(fp); %关闭句柄为关闭句柄为fp的文件的文件000034336. 167.32430524.39512553453

18、.39762230ba地方地方国家国家 yxbayx cossinsincos%上面是全站仪数据的读入,并放在zb结构矩阵中%以下是计算国家坐标系的坐标,并放在gjzb结构矩阵中a=3976223.453;b=39512553.524;rad=deg2rad(0.433267);c=cos(rad);d=-sin(rad);lmd=1.000034336;m=i-1;gjzb=; for i=1:m gjzb(i).dh=zb(i).dh; gjzb(i).dm=zb(i).dm; %点名和点号不变 gjzb(i).h=zb(i).h;%高程不变 gjzb(i).x=a+lmd*(c*zb(i).x-d*zb(i).y) gjzb(i).y=b+lmd*(d*zb(i).x+c*zb(i).y);endfilename2=gjzb.txt;fn=fopen(filename2,a);fprintf(fn,%snn, 点名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论