《Matlab输入输出函数课件.ppt》由会员分享,可在线阅读,更多相关《Matlab输入输出函数课件.ppt(31页珍藏版)》请在三一办公上搜索。
1、数学软件 Matlab 文件操作,数学软件 Matlab,Matlab数据类型,Matlab 数据类型的最大特点是每一种类型都是以数组为基础,Matlab事实上把每种类型的数据都作为数组来处理。,Matlab 常用的数据类型有: numeric(数值型) char(字符型) logical(逻辑型) cell(单元型) struct(结构),Matlab数据类型 Matlab 数据类型的最大特点是,Matlab数据类型,数组,Matlab7.1中的数据类型表,逻辑型,字符型,单元型,函数句柄,Matlab数据类型数组Matlab7.1中的数据类型表逻辑,函数句柄,语法结构handle = fu
2、nctionname函数句柄定义f(x)=x2,可以写为f=(x)(x.2) ; f(100) f1=(x,y)(x.2+y.2); 则f1(2,3)Matlab内置的funm函数其实类似函数句柄格式 A=1,2;3 4; funm=(A,sin),函数句柄语法结构,数值(numeric),数值型数据包括整数(带符号和无符号)和浮点数(单精度和双精度)。,在缺省(默认)状态下,Matlab将所有的数都看作是双精度的浮点数。,Matlab数据类型,使用整型变量和单精度变量可以节约内存空间。,数值(numeric) 数值型数据包括整数(带符号和无,整数,Matlab提供四种带符号整型和四种无符号整
3、型数据类型。,Matlab数据类型,整数Matlab提供四种带符号整型和四种无符号整型数据类,数据的输入:input,A=input(提示信息),其中 提示信息 为字符串, 该命令要求用户输入 A 的值 (可以是数或字符串),input,例:A=input(Please input A: ),disp(X),输出变量 X 的值,X 可以是数值矩阵或字符串 一次只能输出一个变量, B=1 2 3; 4 5 6; 7 8 9; disp(B),disp,数据的输出:disp,disp(X) 输出变量 X 的值,X 可以是数值矩阵或字符,fprintf,fprintf(fid,format,vari
4、ables),数据的格式化输出:fprintf,按指定的格式将变量的值输出到屏幕或指定的文件 fid 为文件句柄,若缺省,则输出到屏幕上 format 用来指定数据输出时采用的格式,包含: 普通字符串、格式字符串、转义字符,%d (整数 ) %e (实数:科学计数法形式 ) %f (实数:小数形式) %g (由系统自动选取上述两种格式之一) %s ( 输出字符串),n ( 换行 ) t ( 制表符 ) b ( 退格 ) ( 反斜杆 ) % ( 百分号 ),fprintffprintf(fid,format,vari,fprintf, a=Hello; b=2.4; c=100*pi; fpri
5、ntf(a=%s, b=%f,c=%en,a,b,c),例:,format 中的格式字符串要与输出变量一一对应,可以没有输出变量, fprintf( Today is Mondayn),例:,fprintf a=Hello;例: format,11,输出格式,Matlab 的输出格式,Matlab 以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量 “ans”,在屏幕上输出运算结果时,可以通过 format 命令指定输出格式,format 只改变输出格式,不会改变变量的值!,11 输出格式Matlab 的输出格式 Matlab 以双精,
6、12,12,各种 format,1212各种 format格式解释例format短格式(缺省,13,13,变量的存储,将变量保存到 mat 文件中,可同时保存多个变量,各变量之间用空格隔开,例:,x=2:5; A=magic(3); a=2.4;save mydata A x;,从 mat 文件中读取变量,1313变量的存储 将变量保存到 mat 文件中save将所,文件操作是一种重要的输入输出方式,Matlab 提供了一系列输入输出函数,专门用于文件操作。,Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件。,Matlab中的输入输出函数是以 C语言标准
7、库函数中的输入输出函数为基础开发的,所以这些函数与 C语言的输入输出函数相类似。,Matlab 文件操作介绍,文件操作是一种重要的输入输出方式,Matlab 提供了一,常见的打开方式有:,fid=fopen(文件名,打开方式),文件的打开,其中文件名用字符串形式表示(可以带路径名),常见的打开方式有:fid=fopen(文件名,打开方式),fid 为文件句柄,其它函数可以用它对该文件进行操作。如果句柄值大于 0,则表示文件打开成功;若打开失败,fid 的返回值为 -1。,有两个标准代码文件,不需打开就可以直接使用,分别为:fid=1 标准输出文件,fid=2 标准错误文件。,文件的打开,fid
8、=fopen(output.txt,wt+);%t文本fprintf(fid,Hello world!n);fclose(fid);,fprintf(1,Hello world!n);fprintf(2,Hello world!n);,fid 为文件句柄,其它函数可以用它对该文件进行操作。如果,文件有两种格式:二进制文件(b)和文本文件(t)。 在Windows下,打开文件的默认是二进制格式,如果要以文本方式打开,则必须在打方式中加上字符 t。,若不指定打开方式,则表示只读。,文件的打开,fid=fopen(output.txt,wt+);,文件有两种格式:二进制文件(b)和文本文件(t)。
9、若不指,其中 fid 为所要关闭的文件的句柄,status 为关闭文件的返回代码,若关闭成功则为 0,否则为 -1。,status=fclose(fid);,文件的关闭,其中 fid 为所要关闭的文件的句柄,status 为关闭,A 用来存放读取的数据 count 返回读取数据的个数,为可选项 fid 为文件句柄 size 为可选项,缺省为读取整个文件, 若给出,则取值可以是:,A,count=fscanf(fid,format,size),文本文件的读取,A 用来存放读取的数据A,count=fscanf(,文本文件的读取,format 用来控制读取的数据格式,由 % 加上格式符组成,下表中
10、是常见的格式符,在 % 之后可以加上数据宽度,如 %12d,c字符型g浮点数(自动)d十进制整数o八进制e浮点数(科学计,将输出变量按指定的格式写入文件中 若省略 fid,则表示在屏幕上输出 count 返回所写入的数据元素个数(可省) format 以 % 开头,通常由以下几个部分组成:,count=fprintf(fid,format,输出变量列表),flags (optional) Width and precision fields (optional) Conversion character (required),文本文件的写入,将输出变量按指定的格式写入文件中count=fpri
11、ntf,fprintf 举例,fprintf(a= %-12.5f n,123.456),format以 % 开头,flag,field width,precision,格式说明符,- :左对齐+ :输出符号0 :空白处添 0空格:前面加一空格,字段宽度,小数点后输出位数,fprintf 举例fprintf(a= %-12.5f,文本文件的写入,fprintf 命令的格式说明符,format 中还可以使用的特殊字符,文本文件的写入 fprintf 命令的格式说明符c字符型g浮,x=0:0.1:1;y=x;exp(x);fid=fopen(output.dat,wt);fprintf(fid,
12、x exp(x)n);fprintf(fid,%6.2f %12.8fn,y);status=fclose(fid);,例:,文本文件的写入举例,x=0:0.1:1;例:文本文件的写入举例,A,count=fread(fid,size,precision),二进制文件的读写,A 用来存放读取的数据 count 返回读取数据的个数,可选项 fid 为文件句柄 size 为可选项,缺省为读取整个文件, 若给出,则取值可以是:,N,A,count=fread(fid,size,preci,recision 代表读取的数据的类型, 缺省为 uchar,二进制文件的读取,recision 代表读取的数据
13、的类型, 缺省为,以下数据类型与使用的平台有关:,二进制文件的读取,char带符号字符short16位带符号整数int,fid=fopen(output.dat,r);A=fread(fid,100,double);status=fclose(fid);,fid=fopen(output.dat,r);A,count=fread(fid,100,100,double);status=fclose(fid);,例:,二进制文件读写举例,fid=fopen(output.dat,r);fi,按指定的数据类型将矩阵 A 中的元素写入到文件中。其中 count 返回所写入的数据元素个数(可省)。,co
14、unt=fwrite(fid,A,precision),A=magic(5); fid=fopen(magic5.dat,w);fwrite(fid,A,int8);fclose(fid);fid=fopen(magic5.dat,r);B,count=fread(fid,4,inf,int8);fclose(fid);,二进制文件的写入,例:,按指定的数据类型将矩阵 A 中的元素写入到文件中。其中 c,30,上机作业,1、文件里二进制数据文件 mydata.dat,从文件中读取100个元素(双精度),构成一个 50 X 2 的矩阵。然后将其写入到一个文本文件(data06.txt)中,按两列
15、排放。(程序命名为 Matlab71.m),2、哥德巴赫猜想:任何一个大于 2 的偶数都能表示成两个素数之和。试编程验证 101, 200 中的偶数是否满足哥德巴赫猜想的论断。并给出这些偶数分解成两个素数之和的表示形式(只需给出一个即可),将结果写入文本文件 Matlab62.txt 中(程序命名为 Matlab62.m),30上机作业1、文件里二进制数据文件 mydata.dat,,31,上机要求,将上机作业用word格式(题目及matlab程序),命名为学号-姓名-Matlab7,发送给 jzlai145163邮件主题为:学号-姓名-Matlab7用本人Email,不要一人发多份,代他人交作业。,上机要求,31上机要求将上机作业用word格式(题目及matlab程序,