实验八MATLAB文件操作与数据导入导出
matlab文件和数据的导入与导出

gjy_just@
x = 0:.1:1; y = [x; exp(x)]; Fid = fopen('exp.txt','w+'); fprintf(Fid,'%6.2f %12.8f\n',y); fclose(Fid); Fid=fopen('exp.txt', 'r+'); %B=fread(Fid, [2,11],'long'); B=fscanf(Fid,'%f',[2,11]); fclose(Fid);
gjy_just@
8
precision 用于控制所读数据的精度格式。 缺省格式为uchar,即无符号字符格式。 例如:Fid=fopen('std.dat', 'r'); A=fread(Fid, [10,10], 'long'); fclose(Fid); A以读数据方式打开数据文件std.dat,并按长 整型数据格式读取文件的前100个数据放入 向量A,然后关闭文件。
gjy_just@
5
2、 fclose关闭文件 文件在进行完读、写等操作后,应及时 关闭,以保证文件的安全可靠。关闭文件 命令格式为: Sta=fclose(Fid) 关闭Fid所表示的文件 Sta表示关闭文件操作的返回代码,若关 闭成功,返回0,否则返回–1。
gjy_just@
江苏科技大学数理学院文件和数据的导入与导出gjyjustyahoocomcn11文件的打开与关闭matlab提供了对数据文件建立打开读写以及关闭等一系列函数数据文件一般存放在磁盘等介质上用文件名标识系统对文件名没有特殊要求
文件和数据的导入与导出
MATLAB文件和数据的导入与导出

练习:1画出曲面图:)(22y x e x z --⨯=,其中x 在[-2,2]等切分21个点,y 在[-1,1]等切分21个点。
2、三维曲线:,126622-++++=y x y xy x z ,1010,1010<<-<<-y x文件和数据的导入与导出1、 文件的打开、保存和关闭(1) 打开文件不同类型文件后缀名不同,如filename.m, filename.mat(数据文件), filename.pdf(pdf 文件), filename.fig(图形文件)。
使用格式:open('filename'): %打开文件filename 。
打开当前路径上的文件,可以直接用open 函数打开,例如: open 学位论文评议书.pdf 或open('学位论文评议书.pdf') 如果文件不在当前路径上,打开它需要指定路径名,例如: open('D:\temp\data.mat')(2)关闭文件status=fclose(fid) :%关闭打开的文件fid ,成功则返回0,否则返回-1。
status=fclose('all')关闭所有的已经打开的文件,成功则返回0,否则返回-1。
2、本机数据文件(1)文件的存储在命令窗口输入>>save这个命令将工作区中的变量存储在matlab.mat中,也可以使用命令:>>save var1 var2…%将var1,var2…保存为名为matlab.mat中。
>>save filename var1 var2…%将var1,var2…保存为名为filename.mat中。
(2)文件的打开使用命令:>>load %可以调用第一个matlab.mat中的所有变量。
>>load filename %filename.mat被打开,其中的变量被载入工作区>>load filename var1 var2 % %filename.mat被打开,其中的变量var1 var2被载入工作区可以使用file 中的Import Data 可以查看.mat文件。
MATLAB的数据导入与导出

MATLAB的数据导⼊与导出1 数据导⼊:%% ⾼层次读取数据。
importdata 函数是⼀个⾼层次的函数filename = 'weeklydata.txt';delimiterIn =''; %delimiter: n. 定界符。
将 delimiterIn 解释为 ASCII ⽂件、⽂件名或剪贴板数据中的列分隔符。
headerlinesIn = 1; % 从 lineheaderlinesIn+1开始读取数字数据。
A=importdata(filename,delimiterIn,headerlinesIn);% 开始预览数据for k =[1:7]disp(A.colheaders{1,k}) %展⽰每⼀列的题头disp(A.data(:,k)) %每⼀列的所有⾏disp('')end结果:Matlab低级别的⽂件 I/O:%% Matlab低级别的⽂件 I/Ofilename = 'myfile.txt';% myfile.txt保存在⼯作⽬录中。
此⽂件存放三个⽉的降⾬资料: 2012年6⽉,7⽉和8⽉降⾬量。
% myfile.txt中的数据在五个地⽅包含重复的时间,⽉份和降⾬量测量。
标题数据存储⽉数M; 所以有M个集合测量值。
rows = 7cols = 5%使⽤ fopen 函数打开⽂件并获得⽂件标识符。
fid = fopen(filename);%读取⽂件头,找到 M (⽉份数)% 使⽤格式说明符描述⽂件中的数据,例如字符串的%s,整数%d或浮点数%f。
% 要跳过⽂件中的⽂字,需将其包含在格式说明中。
要跳过数据字段,在说明符中使⽤星号(*)M=fscanf(fid,'%*s %*s\n %*s %*s %*s %*s\n M=%d',1); %要读取头⽂件,并返回单个的M值%读取 each set of measurementsfor n= 1:M% 默认情况下,fscanf会根据格式描述读取数据,直到找不到数据的匹配,或到达⽂件的末尾。
matlab程序设计文件和数据的导入导出

第十章
图形处理
与数值计算和符号计算相比,图形的可视化技术是数 学计算人员所追求的更高级的一种技术,图形处理技术 则给人们提供了一种更直接的表达方式,可以使人们更 直接、更清楚的了解实物的结果和本质。本章主要介绍 MATLAB的图形处理功能,包括基本的绘图指令、图形的 简单控制和图形窗口的编辑等。
图形处理
5 使用坐标轴标签,图例和文本对图形进 行注释
6 输出打印
图形处理
(二) 绘制二维曲线图 如果将X轴和Y轴的数据分别保存在两个向量中,同 时向量的长度完全相等,那么可以直接调用函数进行二 维图形的绘制。 plot(y) y是实向量,以该向量原始的下标为横坐标,元素值为 纵坐标画出一条连续曲线 y是实矩阵,按列绘制每列元素值相对其下标的曲线,图 中曲线数等于y阵列数。
图形处理
函数
annotation
功能描述
创建线、箭头、文本箭头、双箭头、文本框、 矩形和椭圆
Xlabel,ylabel,zlabel
title
给相应的坐标轴增添标签
给图形增添标题
colorbar
legend
给图形增添颜色条
给图形增添图例
图形处理
1.图题标注 title(‘text’):命令将内容增加到当前图形的顶边部分; 2.坐标轴的标签:用于解释各坐标轴的单位信息。 xlabel(‘text’):命令将text增加到当前x轴的旁边; ylabel(‘text’):命令将text增加到当前y轴的旁边; zlabel(‘text’):命令将text增加到当前z轴的旁边; 3.文本标注 text(x,y,‘string’):在坐标(x,y)的位置上添加文本标注 string.
图形处理
(六) 对数比例坐标轴和双Y轴 当进行数理统计能操作时,习惯使用对数坐标系来绘 制图形。 loglog:对X轴和Y轴均采用对数坐标。 semilogx:对X轴采用对数坐标。 semilogy:对Y轴采用对数坐标。 在进行数值比较时,会遇到必须使用双纵坐标的情况, 函数plotyy绘制的图形左右两端都有显示Y坐标轴。
matlab建模数据的导入与导出

五Hale Waihona Puke 数据导出• save filename varlist 文件格式为mat,只能用load filename 导入 • dlmwrite(„filename‟,m):writes matrix m into filename using the “,” as the delimiter. 可用 dlmread(„filename‟) 或csvread(„filename‟) 读取 • csvwrite(filename,m) writes matrix m into filename as comma separated values. 结果与dlmwrite相同
七、图形的复制与保存
• 图形窗口->edit->copy figure-> word文档->粘贴
努力不一定成功 放弃一定是失败
处理函数 数值文件(一般分隔):dlmread, dlmwrite ,load ,save 文本文件(逗号分隔) :textread, csvread, csvwrite 二进制文件:fopen, fread, fwrite, fclose 格式化的文本输入/输出:fscanf, fprintf 图像数据的读写:imread, imwrite,imshow
其中names、 types 、 answer 均为cell数据类型。如 names{1} 对应‘Sally‟ answer{2}对应‘No‟。 x, y 均为double型 数组
• • • •
2009年全国数模赛B题数据的 导入
题目: 第一步:现将数据复制到记事本中: 第二步:编写程序,读取数据 第三部:数据处理与分析
• 学好计算机的唯一途径是
• 你的编程能力与你在计算机上练习编程 所投入的时间成
Matlab文件和数据的导入与导出

MATLAB中导入数据通常由函数load实现,该函数的用法如下:
2014年8月31日7时46分
回到章节目录
5
MATLAB中,另一个导入数据的常用函数为importdata,该 函数的用法如下: ● importdata(‘filename’),将filename中的数据导入到工作区中 ● A = importdata(‘filename’),将filename中的数据导入到工作区 中,并保存为变量A; ● importdata(‘filename’,‘delimiter’),将filename中的数据导入到 工作区中,以delimiter指定的符号作为分隔符; 例 从文件中导入数据。 >> imported_data = importdata('matlab.mat') imported_data = ans: [1.1813 1.0928 1.6534] A: [2x3 double] I_q: [415x552x3 uint8] num_of_cluster: 3 与load函数不同,importdata将文件中的数据以结构体的方 式导入到工作区中。 回到章节目录
2014年8月31日7时46分 回到章节目录 3
例如: a = [1 2 3; 4 5 6; 7 8 9]; b=[2 3 4]'; save 'c:\tst.txt ' a -ascii
则将a保存在c盘中的tst.txt文件中,文件内容:
1.0000000e+000 2.0000000e+000 3.0000000e+000 4.0000000e+000 5.0000000e+000 6.0000000e+000 7.0000000e+000 8.0000000e+000 9.0000000e+000
matlab中的数据导入和导出

matlab中的数据导入和导出Matlab提供了从磁盘文件或剪贴簿转载数据至工作区(数据导入)和将工作区变量存入磁盘文件(数据导出)的多种途径。
最简单的办法是使用界面导入向导,打开文件菜单中的导入数据而后按提示操作。
Matlab支持的主要数据文件类型和对应函数如下:导入文本文件文本文件需要具备统一的行列模式,使用分隔符作为数据项间隔,这些分隔符包括空格、逗号、tab、分号或其它。
数据文件可能附带标题行和行列头标签。
数值数据对于数值数据可以直接使用load函数装载,例如my_data.txt中数据如下:1 2 3 4 56 7 8 9 10命令A = load('my_data.txt')装载该文本文件数据。
如果数值数据使用其它分隔符,可以使用dlmread读入,假设my_data.txt中数据如下:7.2;8.5;6.2;6.65.4;9.2;8.1;7.2命令A = dlmread('my_data.txt', ';')读入该数据。
包含行列标签的数值数据例如:Grade1 Grade2 Grade378.8 55.9 45.999.5 66.8 78.089.5 77.0 56.7fid = fopen('grades.dat', 'r');grades = textscan(fid, '%f %f %f', 3, 'headerlines', 1);fclose(fid);包含字符和数值的混合数据使用textread函数读入。
导出文本文件save函数A = [ 1 2 3 4 ; 5 6 7 8 ];save my_data.out A –ASCIIdlmwrite函数dlmwrite('my_data.out',A, ';')MS-Excel电子表格文件xlsinfo获得文件信息使用命令[type, sheets] = xlsfinfo(filename)返回文件类型type 和工作表信息。
MATLAB里面的数据导入与导出

MATLAB⾥⾯的数据导⼊与导出
-、导⼊数据
上⾯这张图,我们可以看到导⼊数据这⼀项,点击导⼊数据
上⾯是我从我电脑⾥⾯随便选的的⼀个excel⽂件,然后点击选择就成。
后⾯我们就进⼊了新的页⾯
这⾥我们需要注意的是选择输出类型,由于我们后⾯需要对矩阵内的数据进⾏运算,所以我们选择了数值矩阵,然后点击导⼊所选内容
在这⾥我们在⼯作区会发现⼀个example2,就是我们导⼊的数据。
后⾯我们就可以进⾏数据操作了。
⼆、写⼊数据
这是将数据写⼊txt⽂件内的代码。
这是将数据写⼊excel⽂件中的代码,注意,这个a.xls⽂件是可以先不新建的,它会⾃⼰新建,除此以外,我们必须明⽩的是,我们写代码的时候example和example2⽂件的数据类型不⼀样,如果不加注意的话,我们后⾯可能导⼊不进去数据,如我们将example的⽂件写⼊a.xlsx⽂件中就会出问题。
然后我们注意⼀下xlswrite和writetable两个的区别就好了,⼀个是写⼊excel⽂件,⼀个是写⼊⽂本中。
相关的语法直接help就成。
这个是导⼊数据之后的excel⽂件,在左边的当前⽂件夹可见。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八 Matlab 文件操作与数据接口一、实验目的1、熟练掌握工作区变量的文件操作;2、熟练掌握文本文件的读写操作;3、熟练掌握格式化文本文件的输入输出语句的执行4、了解二进制文件、Mat文件的读写操作二、实验仪器与软件1. PC计算机2. Matlab软件三、实验原理1. 二进制文件与文本文件的区别:将文件看作是由一个一个字节(byte) 组成的,那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了。
这就是两者的区别;接着,第二个问题就是文件按照文本方式或者二进制方式打开,两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同。
如果按照文本方式打开,在打开的时候会进行translate,将每个字节转换成ASCII 码,而以按照二进制方式打开的话,则不会进行任何的translate;最后就是文本文件和二进制文件在编辑的时候,使用的方式也是不同的。
譬如,你在记事本中进行文本编辑的时候,你进行编辑的最小单位是字节(byte);而对二进制文件进行编辑的话,最小单位则是位(bi t),当然我们都不会直接通过手工的方式对二进制文件进行编辑了。
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种:ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。
例如,数5678的存储形式为:ASCII码:00110101 00110110 00110111 00111000↓↓↓↓十进制码:5678共占用4个字节。
ASCII码文件可在屏幕上按字符显示,例如源程序文件就是A SCII文件,用DOS命令TYPE可显示文件的内容。
由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。
例如,数5678的存储形式为:00010110 00101110 只占二个字节。
二进制文件虽然也可在屏幕上显示,但其内容无法读懂。
Matlab 中存储成为二进制还是文本文件取决于fopen的方式,如果用wt,则存储为文本文件,这样用记事本打开就可以正常显示了;如果用w则存储为二进制文件,这样用记事本打开会出现小黑方块,要正常显示的话,可以用写字板或UltraEdit等工具打开。
2. MATLAB文件操作与数据导入导出2.1 文件的打开和关闭2.1.1 文件的打开无论是要读写ASCII码文件还是二进制文件,都必须先用fopen函数将其打开,在默认情况下,fopen以二进制格式打开文件,它的使用语法如下:fopen ('filename', 'mode')其中filename表示要读写的文件名称,mode则表示要对文件进行的处理方式,可以是表2-1中的任一字符串。
表2-1 文本文件打开的模式fopen函数有两个返回值,一个是返回一个文件标志(file Identifier),它会作为参数被传入其他对文件进行读写操作的命令,通常是一个非负的整数,可用此标识来对此文件进行各种处理。
如果返回的文件标识是–1,则代表fopen 无法打开文件,其原因可能是文件不存在,或是用户无法打开此文件权限。
另一个返回值就是message,用于返回无法打开文件的原因。
为了安全起见,最好在每次使用fopen函数时,都测试其返回值是否为有效值。
下面以脚本m文件为例来声明文件的打开。
例2-1 %exam1.m[f,message]=fopen('fileexam1', 'r')if f==-1disp (message); %显示错误信息end若文件fileexam1不存在,则显示如下信息。
Cannot open file.existence?permissions?memory?...例2-2 %exam2.m[f,message]=fopen('fileexam2', 'r');if f==-1disp (message); %显示错误信息elsedisp(f);end若文件fileexam2存在,则返回f值。
2.1.2 文件的关闭一旦完成文件的读写,最好关闭文件,以便对其进行其他操作。
这时就可以使用fclose函数来关闭文件,其适用语法如下。
fclose(f)其中f为打开文件的标志,若fclose函数返回值为0,则表示成功关闭f标志的文件;若返回值为–1,则表示无法成功关闭该文件。
一般来说,在完成对文件的读写操作后就应关闭它,以免造成系统资源浪费。
此外,需注意的是,打开和关闭文件都比较耗时,因此为了提高程序执行效率,最好不要在循环体内使用文件。
若要一次关闭打开的所有文件,可以使用下面的命令:fclose all2.2 文本数据虽然MATLAB自带的MAT文件为二进制文件,但为了便于和外部程序进行交换以及方便查看文件中的数据,也常常采用文本数据格式与外界进行数据交换。
在文本格式中,数据采用ASCII码格式,可以表示字母和数字字符。
2.2.1 从文本文件中读取数据1.使用导入模板来读取数据使用导入模板来读取数据,需按以下步骤进行:(1) 选择File→Import Data选项,然后弹出一个文件选择对话框;也可以使用uiimport函数来打开导入数据模板。
(2) 在文件选择对话框中选择想导入数据的文本文件,然后单击Open按钮,导入数据模板就会打开该文件并准备处理其内容。
(3) 指定用于分开单个数据的字符,该字符称为分隔符或列分隔符。
在多数情况下可以用导入模板来设定分隔符。
(4) 选择要导入的变量。
在默认情况下,导入模板将所有的数值数据放在一个变量中,而将文本数据放在其他变量中。
(5) 单击Finish按钮完成数据的导入。
当使用导入模板来打开一个文本文件时,在导入模板对话框的预览区仅显示原始数据的一部分,通过它,用户可以验证该文件中的数据是否为所期望的。
导入模板也根据文件中的数据分隔符来对导入的数据进行预处理。
在导入模板中打开工作区中的grade.txt文件。
english math physicjoe 80 90 60susan 78 98 88rob 67 90 89图2-1 将数据通过模板导入在图2-1中,导入模板已辨认space字符,把它作为文件中数据的分隔符,并建立了两个变量:data(包含文件中所有数值数据)和textdata(包含文件中所有文本数据)。
当导入模板正确导入文件中的数据后,就会显示它所建立的变量。
要选择一个变量来导入数据,可单击它名称后面的复选框。
在默认情况下,所有变量都会被选中。
在导入对话框的右面显示了导入模板建立的变量内容。
要查看其他变量,只需要单击该名称。
在选择好要导入的变量后,单击Next按钮,如图2-2所示。
图2-2 使用模板查看各变量数据在默认情况下,导入模板将文件中所有的数值数据放在一个变量中;若文件包含文本数据,则模板将它们放在另外一个变量中;若文件包含行或列,模板也将它们作为各自独立的变量分别称为行头和列头。
2. 使用函数来读取文本数据若要在命令行或在一个 M 文件中读取数据,必须使用 MATLAB 数据函数,函数的选择则是依据文本文件中数据的格式。
而且文本数据格式在行和列上必须采取一致的模式,并使用文本字符来分隔各个数据项,称该字符为分隔符或列分隔符。
分隔符可以是space、comma、semicolon、ab或其他字符,单个的数据可以是字母、数值字符或它们的混合形式。
文本文件也可以包含称之为头行的一行或多行文本,或可以使用文本头来标志各列或各行。
在了解要输入数据的格式之后,便可以使用 MATLAB 函数来读取数据了。
若对 MATLAB 函数不熟悉,可从表2-2中了解几个读取函数的一些使用特征。
表2-2 读取函数的比较3. 读取数值文本数据若用户的数据文件只包含数值数据,则可以使用许多MATLAB函数,这取决于这些数据采用的分隔符。
若数据为矩形形状,也就是说,每行有同样数目的元素,这时可以使用最简单的命令load(load也能用于导入MAT文件,该文件为用于存储工作空间变量的二进制文件,如果文件名后缀是.dat,则MATLAB会以MAT 文件格式进行读取)。
例如,文件my_data.txt包含了两行数据,各数据之间由space字符隔开。
当使用load时,它将读取数据并在工作空间中建立一个与该文件同名的变量,但不包括扩展名。
>>load my_data.txt;调用whos命令查看工作空间的变量。
>> whosName Size BytesClass Attributesdata 3x3 72doublemy_data 3x4 96doubletextdata 4x1 314cell此时可以查看与该文件同名的变量的值>> my_datamy_data =0.3242 0.4324 0.3455 0.67540.4566 0.9368 0.9892 0.92740.4658 0.2832 0.9373 0.8233若想将工作空间的变量以该文件名命名,则可以使用函数形式的load,下面的语句将文件导入工作空间并赋给变量AA=load('my_data.txt');4. 读取有分隔符的ASCII数据文件如果数据文件不使用空格符而是使用逗号或是其他符号作为分隔符,用户可以选择多个可用的导入数据函数。
最简单的便是使用函数dlmread。
举个例子来说,一个名为lcode.dat的数据文件,数据内容由逗号分隔。
0.3445,0.8433,0.78650.7562,0.4233,0要把该文件的全部内容读入阵列A,只须输入如下命令:>> A=dlmread('lcode.dat',',')即可以把数据文件中使用的分隔符作为函数dlmread的第二个参数。
注意:即使每行的最后一个数据后面不是逗号,dlmread函数仍能正确读取数据,因为dlmread忽略了数据之间的空格符。
因此,即使数据为如下格式,前面的dlmread命令仍能正常工作。
A =0.3445 0.8433 0.78650.7562 0.4233 0另外需要注意的是,分隔符只能选取单个字符,不能用字符串来作为分隔符。
5. 使用文本头读取数值数据要读取一个包含文本头的ASCII码数据文件,可以使用textread函数,并指定头行参数。
调用函数textread 同样非常简单,同时对文件读取的格式处理能力更强,函数接收一组预先定义好的参数,由这些参数来控制变量的不同方面。