MATLAB文件操作相关命令

本文详细介绍了Matlab中的文件操作方法,包括文件的打开、读取、写入及关闭等核心功能。文中列举了多种文件操作函数如fopen、fwrite、fread、fclose等,并解释了它们的使用方法及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://drh00.blog.163.com/blog/?clsId=fks_094068086087081071083084074069083086085067080&class=

5.2.4       输入输出语句

(1)         实时交互输入输出

input;keyboard

(2)          完全复制式的文件存取

*1) save

save            

save '文件名' x

save '文件名' x y z

save '文件名' x y z –ascii

save '文件名' x y z –ascii –double

save '文件名' x y z –ascii –double –tabs

save '已有文件名' x y z –append

 

注1:save 的默认文件名是 fname.m

注2:–ascii  8字节 ascii码方式

注3:–ascii  16字节 ascii码方式

注3:–ascii –double –tabs  格式排列

注3:–append 续后存放

 

*2) load

load 

load  '文件名'

 

注1:load 的默认文件名是 fname.m

 

 

 

 

(3)         文件存取管理(建立与读写)

文件管理(打开、写入、读出、关闭、定位),

 

*1)“fopen”打开文件,赋予文件代号。

    语法1:FID= FOPEN(filename,permission)

用指定的方式打开文件

FID=+N(N是正整数):表示文件打开成功,文件代号是N.

FID=-1            : 表示文件打开不成功。

FID在此次文件关闭前总是有效的。

如果以读方式打开,matlab首先搜索工作目录,其次搜索matlab的其他目录,“permission”是打开方式参数。

打开方式参数由以下字符串确定:

r             读出

w             写入(文件若不存在,自动创建)

a             后续写入(文件若不存在,自动创建)

r+            读出和写入(文件应已存在)

w+            重新刷新写入,(文件若不存在,自动创建)

a+            后续写入(文件若不存在,自动创建))

w             重新写入,但不自动刷新

a             后续写入,但不自动刷新

 

   文件的存储格式:文件打开的默认方式是:二进制。以文本方式打开,可以在方式参

数“permission”中加入“t”文件将,如“rt”,“wt+”

 

 

语法2:[fid,message]= FOPEN(filename,permission)

FID=-1 ,文件打开不成功时,返回错误信息

 

 

语法3:[fid,message]= FOPEN(filename,permission,machineformat)

permission:  用指定的方式打开文件。

machineformat: 指定读写时用的数据格式。

数据格式(machineformat)取值如下

'native'  or 'n'      Local machine format - the default

'ieee-le' or 'l'     IEEE 浮点数( little-endian byte ordering)

'ieee-be' or 'b'     IEEE 浮点数( big-endian byte ordering)

'vaxd'    or 'd'     VAX D 浮点数 (VAX ordering)

'vaxg'    or 'g'     VAX g 浮点数 (VAX ordering)

'cray'    or 'c'     Cray  浮点数 (big-endian byte ordering)

长型数据

'ieee-le.l64' or 'a' IEEE 浮点数(little-endian byte ordering和64 位)

long data type

'iecc-be.l64' or 's' IEEE 浮点数(big-endian byte ordering和64 位)

long data tw

 

 

语法4: [filename,permission,machineformat]=fopen(fid)。

    查看打开文件的情况返回文件名、打开方式、文件格式。如果fid不存在,则返回变量。

    fid=fopen('allall')

返回当前所有打开的文件。

 

 

*2)“fwrite”以二进制形式,向文件写入数据。

语法1:count=fwrite(fid,a,precision)

将矩阵a 写入fid指向的打开的文件,matlab 自动将a元值转换成precision规定的精度(见后),写成列的形式。count是返回值,写入成功,返回写入数据个数,否则返回0。

 

语法2:count=fwrite(fid,a,precision,skip)

skip:取正整数n ,

将矩阵a 以步长n 跳选数值写入fid指向的打开的文件,例如,a=1,2,3,4,5,6,7,8,9 ;skip=2; 则输入  _,_,3,_,_,6,_,_,9。这对非连续数据场,定长插入数据极有意义。

 

 

*3)“fread”以二进制形式,从文件读出数据。

语法1:[a,count]=fread(fid,size,precision)

语法2:[a,count]=fread(fid,size,precision,skip)

size:    不指定     :到尾返回读。

          N         : 读出N个数据,构成列向量。

          inf       : 读出fid指向的打开的文件的全部数据。

          [M,N]     : 读出N个数据,构成列向量,填入M*N矩阵

 

precision(精度)

precision(精度)规定了以浮点数、整型数、字符读出时字节数。matlab 的precision(精度)的表达式与c语言、fortran语言、是一致的。不规定precision(精度),则字符默认为: ucher、则数值默认为:双精度 。

 

以下precision(精度)将保证读出具有一致的体积。

MATLAB           C or Fortran             Descriphon(精度)

'char'           'char*l'               8 字节数,字符型

'uchar'          'unsigned char'        8 字节数

'schar'          'signed char'          8 字节数,字符型

'int8'           'integer*1'            8 字节数,整型数

'intl6'          'integer*2'            16 字节数,整型数.

'int32'          'integer*4'            32 字节数,整型数.

'int64'          'integer*8'            64 字节数,整型数

'uint8'          'integer*l'            8 字节数

'uintl6'         'integer*2'            16 字节数

'uint32'         'integer*4'            32 字节数

'uint64'         'integer*8'            64 字节数

'float32'        'real*4'               浮点数, 32 字节数

'float64'        'real*8'               浮点数, 32 字节数

以下precision(精度)将不保证读出具有一致的体积。

MATLAB           C or Fortran            Descriphon(精度)

'short'          'short'                 16 字节数,整型数

'int'            'int'                   32 字节数,整型数

'long'           'long'                  32 (64) 字节数,整型数

'uShort'         'Unsigned short'        16 字节数

'uint'           'Unsigned int'          32 字节数

'ulong'          'unsigned long'         32 (64) 字节数                                                         

'float'          'float'                 浮点数, 32 字节数

'double'         'double'                浮点数, 64 字节数

 

以下precision(精度)规定读出指定的体积n。

'bitN'          N字节数,整型数      1<=N<=64

'ubitN'         N字节数,            1<=N<=64

 

 

*4)从文件中有格式地读数据   fscanf

语法1:[a,count]=fscanf(fid,format,size)

根据指定的格式从fid 文件按照格式format读出数据并按size的格式放入内存。

a      :读出的数据放入内存的变量名

count  :返回值。0:失败、n>0:成功,n是读出数据个数。

fid    :文件号

size   :a的数据的格式

N      :  列向量   

inf    :  读出文件全部数据

[M,N]  :  读出数据以M*N的格式放入变量名a内

format :读出数据的格式

format是字符形式,与C语言基本相同。字符形式中有“%”与字符集(d,i,o,u,x,e,f,g,s,c,…)搭配构成。

如:   %s:单字符读

       %c:读space字符

例:s=fscanf(fid,'%s')   返回一个字符。

a=fscanf(fid,'%5d')  返回一个五位十进制整数。

 

*5)关闭文件 fclose

语法1:fclose(fid)

语法2:fclose('all')

 

*6)向文件写数据 printf

语法1:count=printf(fid,format,a,b,s,……)

例:

x=0:0.1:1;

y=[x;exp(x)];

fid=fopen('exp.txt','w')

fprintf(fid,'%6.2  %12.8f/n',y);

计算结果:

        0.0      1.00000000

        0.1      1.10517092 

 

        1.00     2.71828183

 

 

*8) 指针放到文件头:frewind

语法1:frewind(fid)

 

, hansi-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'">以下precision(精度)规定读出指定的体积n。

'bitN'          N字节数,整型数      1<=N<=64

'ubitN'         N字节数,            1<=N<=64

 

 

*4)从文件中有格式地读数据   fscanf

语法1:[a,count]=fscanf(fid,format,size)

根据指定的格式从fid 文件按照格式format读出数据并按size的格式放入内存。

a      :读出的数据放入内存的变量名

count  :返回值。0:失败、n>0:成功,n是读出数据个数。

fid    :文件号

size   :a的数据的格式

N      :  列向量   

inf    :  读出文件全部数据

[M,N]  :  读出数据以M*N的格式放入变量名a内

format :读出数据的格式

format是字符形式,与C语言基本相同。字符形式中有“%”与字符集(d,i,o,u,x,e,f,g,s,c,…)搭配构成。

如:   %s:单字符读

       %c:读space字符

例:s=fscanf(fid,'%s')   返回一个字符。

a=fscanf(fid,'%5d')  返回一个五位十进制整数。

 

*5)关闭文件 fclose

语法1:fclose(fid)

语法2:fclose('all')

 

*6)向文件写数据 printf

语法1:count=printf(fid,format,a,b,s,……)

例:

x=0:0.1:1;

y=[x;exp(x)];

fid=fopen('exp.txt','w')

fprintf(fid,'%6.2  %12.8f/n',y);

计算结果:

        0.0      1.00000000

        0.1      1.10517092 

 

        1.00     2.71828183

 

 

*8) 指针放到文件头:frewind

语法1:frewind(fid)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值