您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > Matlab输入输出函数
数学软件Matlab文件操作Matlab数据类型Matlab数据类型的最大特点是每一种类型都是以数组为基础,Matlab事实上把每种类型的数据都作为数组来处理。Matlab常用的数据类型有:numeric(数值型)char(字符型)logical(逻辑型)cell(单元型)struct(结构)Matlab数据类型数组Matlab7.1中的数据类型表逻辑型字符型单元型函数句柄函数句柄语法结构handle=@functionname函数句柄定义f(x)=x^2,可以写为f=@(x)(x.^2);f(100)f1=@(x,y)(x.^2+y.^2);则f1(2,3)Matlab内置的funm函数其实类似函数句柄格式A=[1,2;34];funm=(A,@sin)数值(numeric)数值型数据包括整数(带符号和无符号)和浮点数(单精度和双精度)。在缺省(默认)状态下,Matlab将所有的数都看作是双精度的浮点数。Matlab数据类型使用整型变量和单精度变量可以节约内存空间。整数Matlab提供四种带符号整型和四种无符号整型数据类型。Matlab数据类型数据类型取值范围转换函数Signed8-bitinteger-27to27–1int8Signed16-bitinteger-215to215–1int16Signed32-bitinteger-231to231–1int32Signed64-bitinteger-263to263–1int64Unsigned8-bitinteger0to28–1uint8Unsigned16-bitinteger0to216–1uint16Unsigned32-bitinteger0to232–1uint32Unsigned64-bitinteger0to264–1uint64例:A=input('PleaseinputA:')数据的输入:inputA=input(提示信息)其中提示信息为字符串,该命令要求用户输入A的值(可以是数或字符串)inputname=input('What''syourname?')例:输入字符串时必须带单引号单引号的输出:两个连续的单引号disp(X)输出变量X的值,X可以是数值矩阵或字符串一次只能输出一个变量B=[123;456;789];disp(B)disp数据的输出:dispA='Hello,Tom!';disp(A)例:fprintffprintf(fid,format,variables)数据的格式化输出:fprintf按指定的格式将变量的值输出到屏幕或指定的文件fid为文件句柄,若缺省,则输出到屏幕上format用来指定数据输出时采用的格式,包含:普通字符串、格式字符串、转义字符%d(整数)%e(实数:科学计数法形式)%f(实数:小数形式)%g(由系统自动选取上述两种格式之一)%s(输出字符串)\n(换行)\t(制表符)\b(退格)\\(反斜杆)%%(百分号)fprintfa='Hello';b=2.4;c=100*pi;fprintf('a=%s,b=%f,c=%e\n',a,b,c)例:format中的格式字符串要与输出变量一一对应可以没有输出变量fprintf('TodayisMonday\n')例:11输出格式Matlab的输出格式Matlab以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量“ans”在屏幕上输出运算结果时,可以通过format命令指定输出格式format只改变输出格式,不会改变变量的值!1212各种format格式解释例format短格式(缺省格式),同short3.1416formatshort短格式(缺省格式),小数点后4位3.1416formatlong长格式,双精度15位,单精度7位3.14159265358979formatshortE短E格式(科学计数格式)3.1416e+000formatlongE长E格式3.141592653589793e+000formatshortG短G格式3.1416formatlongG长G格式3.14159265358979formatrat分数形式355/113formatcompact紧凑格式formatloose宽松格式format+,formatbank,formathex(详情查看联机帮助)1313变量的存储将变量保存到mat文件中save将所有变量保存到文件matlab.mat中savefnamesavefname.mat将所有变量保存到文件fname.mat中savefname变量将指定变量保存到文件fname.mat中可同时保存多个变量,各变量之间用空格隔开例:x=2:5;A=magic(3);a=2.4;savemydataAx;从mat文件中读取变量loadfname读取fname.mat中的所有变量loadfname变量从fname.mat中读取指定的变量文件操作是一种重要的输入输出方式,Matlab提供了一系列输入输出函数,专门用于文件操作。Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件。Matlab中的输入输出函数是以C语言标准库函数中的输入输出函数为基础开发的,所以这些函数与C语言的输入输出函数相类似。Matlab文件操作介绍常见的打开方式有:fid=fopen(文件名,打开方式)'r'只读,文件必须存在(缺省的打开方式)'w'写文件,若文件已存在则原内容将被覆盖;若文件不存在则新建一个'a'在文件末尾添加,文件若不存在则新建一个'r+'可读可写,文件必须存在'w+'可读可写,若文件已存在则原内容将被覆盖;若文件不存在则新建一个'a+'可读可写可添加,文件若不存在则新建一个文件的打开其中文件名用字符串形式表示(可以带路径名)fid为文件句柄,其它函数可以用它对该文件进行操作。如果句柄值大于0,则表示文件打开成功;若打开失败,fid的返回值为-1。有两个标准代码文件,不需打开就可以直接使用,分别为:fid=1标准输出文件,fid=2标准错误文件。文件的打开fid=fopen('output.txt','wt+');%t文本fprintf(fid,'Helloworld!\n');fclose(fid);fprintf(1,'Helloworld!\n');fprintf(2,'Helloworld!\n');文件有两种格式:二进制文件(b)和文本文件(t)。在Windows下,打开文件的默认是二进制格式,如果要以文本方式打开,则必须在打方式中加上字符't'。若不指定打开方式,则表示只读。文件的打开fid=fopen('output.txt','wt+');其中fid为所要关闭的文件的句柄,status为关闭文件的返回代码,若关闭成功则为0,否则为-1。status=fclose(fid);文件的关闭A用来存放读取的数据count返回读取数据的个数,为可选项fid为文件句柄size为可选项,缺省为读取整个文件,若给出,则取值可以是:[A,count]=fscanf(fid,format,size)文本文件的读取N读取N个数据到一个列向量Inf读取整个文件[m,n]读取mn个数据到一个mn矩阵中,按列存放c字符型g浮点数(自动)d十进制整数o八进制e浮点数(科学计数法)s字符串f浮点数(小数形式)x十六进制文本文件的读取format用来控制读取的数据格式,由%加上格式符组成,下表中是常见的格式符,在%之后可以加上数据宽度,如%12d将输出变量按指定的格式写入文件中若省略fid,则表示在屏幕上输出count返回所写入的数据元素个数(可省)format以%开头,通常由以下几个部分组成:count=fprintf(fid,format,输出变量列表)flags(optional)Widthandprecisionfields(optional)Conversioncharacter(required)文本文件的写入fprintf举例fprintf('a=%-12.5f\n',123.456)format以%开头flagfieldwidthprecision格式说明符-:左对齐+:输出符号0:空白处添0空格:前面加一空格字段宽度小数点后输出位数文本文件的写入fprintf命令的格式说明符c字符型g浮点数(自动)d十进制整数o八进制e浮点数(科学计数法)s字符串f浮点数(小数形式)x/X十六进制format中还可以使用的特殊字符\b退后一格\t水平制表符\f换页\\反斜杠\n换行''单引号\r回车%%百分号x=0:0.1:1;y=[x;exp(x)];fid=fopen('output.dat','wt');fprintf(fid,'xexp(x)\n');fprintf(fid,'%6.2f%12.8f\n',y);status=fclose(fid);例:文本文件的写入举例[A,count]=fread(fid,size,precision)Inf读取整个文件(缺省)读取N个数据到一个列向量[m,n]读取mn个数据到一个mn矩阵中,按列存放二进制文件的读写A用来存放读取的数据count返回读取数据的个数,可选项fid为文件句柄size为可选项,缺省为读取整个文件,若给出,则取值可以是:Nprecision代表读取的数据的类型,缺省为uchar'uchar'无符号字符'uint16'16位无符号整数'schar'带符号字符'uint32'32位无符号整数'int8'8位带符号整数'uint64'64位无符号整数'int16'16位带符号整数'float32'32位浮点数'int32'32位带符号整数'float64'64位浮点数'int64'64位带符号整数'double'64位双精度数'uint8'8位无符号整数二进制文件的读取'char'带符号字符'short'16位带符号整数'int'32位带符号整数'long'32或64位带符号整数'ushort'16位无符号整数'uint'32位无符号整数'ulong'32或64位无符号整数'float'32位浮点数以下数据类型与使用的平台有关:二进制文件的读取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);例:二进制文件读写举例按指定的数据类型将矩阵A中的元素写入到文件中。其中count返回所写入的数据元素个数(可省)。count=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);二进制文件的写入例:30上机作业1、文件里二进制数据文件mydata.dat,从文件中读取100个元素(双精度),构成一个50X2的矩阵。然后将其写入到一个文本文件(data06.txt)中,按两列排放。(程序命名为Matlab71.m)2、哥德巴赫猜想:任何一个大于2的偶数都能表示成两个素数之和。试编程验证[101,200]中的偶数是否满足哥德巴赫猜想的论断。并给出这些偶数分解成两个素数之和的表示形式(只需给出一个即可),将结果写入文本文件Matlab62.txt中(程序命名为Matlab62.m)31上机
本文标题:Matlab输入输出函数
链接地址:https://www.777doc.com/doc-6887064 .html