Matlab 对路径的操作及读写文件

Matlab在数学运算方面有着强大的功能,同时在程序编写方面也有一定的优势。Matlab可用作函数、脚本、封装成类,同时提供了与常用编程语言的接口。这时,matlab对文件目录和文件的操作有着重要的作用。
一、 
matlab对路径的操作
1、  filesep
用于返回当前平台的目录分隔符,Windows是反斜杠(\),Linux是斜杠(/)。
  2、  fullfile
用于将若干字符串连接成一个完整的路径。例如:
>>  f=fullfile('D:','Matlab','example.txt')  f=D:\Matlab\example.txt  (在Windows中,“D:\”表示D盘,“D:”表示目录)
  3、  fileparts
用于将一个完整的文件名分割成4部分:路径,文件名,扩展名,版本号。例如:  >>  f=fullfile('D:','Matlab','example.txt');  >>[pathstr,name,ext,versn]=fileparts(f)  pathstr=D:\Matlab  name=example  ext=.txt  versn=’’
4、  pathsep
返回当前平台的路径分隔符。Windows是分号(;),Linux是冒号(:)。
5、  exist
可以用于判断目录或者文件是否存在,同时不同的返回值有不同的含义。例如:  >>  f=fullfile('D:','Matlab','example.txt');  >>exist(f)
ans=2
>>exist('D:\Matlab')  ans  =7
6、  which
可以通过一个函数或脚本名称得到它的完整路径,同时还能处理函数重载的情况,例如:  >>  which  abs(0)  C:\MATLAB7\toolbox\matlab\elfun\@double\abs.bi    double  method  >>  which  abs(single(0))  C:\MATLAB7\toolbox\matlab\elfun\@single\abs.bi    single  method
  7、  isdir
判断一个路径是否代表了一个目录,例如:  >>  p='D:\Matlab';
>>  f=fullfile(p,'example.txt');  >>  isp=isdir(p)  isp=1
>>  isf=isdir(f)  isf=0
8、  dir
用于列出一个目录的内容,返回值为结构体数组类型,包含如下部分:name:文件或目录的名称;date:修改日期;bytes:文件大小;isdir:是否是目录。例如:
>>  p='D:\Matlab';  >>files=dir(p)  files 
8x1  struct  array  with  fields:          name          date          bytes   isdir 
9、  cd
用于切换当前工作目录。例如:
>>cd('c:/toolbox/matlab/demos')  %切换当前工作目录到demos  >>cd  ..  %切换当前工作目录到matlab 
10、  pwd
用于当前工作目录的路径。例如:  >>  pwd  ans  =C:\MATLAB7\work
11、  path
用于对搜索路径的操作。例如:
<<path  %查询当前所有的搜索路径(MATLABPATH)  <<p=path    %把当前的搜索路径存在字符串变量p中  <<path(‘newpath’)    %将当前搜索路径设置为newpath  <<path(path,’newpath’)  %向路径添加一个新目录newpath  <<path(’newpath’,  path)  %向当前搜索路径预加一个新目录nespath
12、  addpath和rmpath
用于对matlab搜索路径的添加和删除。例如:
<<addpath(‘directory’)  %将完整路径directory加入到当前搜索路径的最顶端  <<rmpath
13、  what
用于显示出某目录下存在哪些matlab文件;若输入完整路径,可列出指定目录下的文件。例如:
<<what
<<what  dirname  <<what(‘dirname’)
其中dirname是要查找的路径的名字,路径在matlab的搜索路径内时,没有必要输入全名,只输入最后或最后两级就够了。  14、  path2rc
保存当前matlab的搜索路径到pathdef.m文件中。
二、  matlab对文件的操作
1、  fopen
打开文件或者得到文件打开的信息。例如:  >>  f=fullfile('D:','Matlab','example.txt');
>>fid=fopen(f);  %打开文件,fid=-1表示打开文件失败;fid=1表示输出stdout;fid=2
表示错误信息文件;fid=其他正数表示文件打开成功,并返回文件编号。(fid=1,2不需打开)
>>  fid  fopen(f,’r’);  %以读(r)的方式打开文件;打开方式有:r,  w,  a,  r+,  w+,  a+,  A,  W
>>[fid,message]  fopen(filename,  mode,  machineformat)
  2、  fclose
关闭一个或者多个文件。例如:  >>fclose(fid)
>>fclose(‘all’)
  3、  load
可用于读数值型文件,并且无须打开文件,但是要求文件中的内容所有行的列数相同。例如:
>>  f=fullfile('D:','Matlab','example.txt');  >>A=load(f)    %返回以f为路径的文件的内容 
4、  fread
用于读取文件中的内容,需要和fopen,  fclose配合使用,返回的是ASCII码,可以指定返回字节数和返回的格式。例如:
>>  f=fullfile('D:','Matlab','example.txt');  >>  fid  fopen(f,  'r');  >>a=fread(fid);  %读取文件全部内容,返回的是每个字节的ASCII码
>>b=fread(fid,5);  %读取文件中的前5个字符返回的是这5个字节的ASCII码  >>c=fread(fid,5,  'uint8=>char');  %读取文件中前5个字符并以字符char格式返回  >>d=fread(fid,’*char’);    %读取文件中全部内容并以字符串的格式返回  (a,b,c,d每句是一个单独语句与其他语句无关)
>>e1=fread(fid,5,’*char’);  %读取文件中前5个字符并以字符串的格式返回
>>e2=fread(fid,8,’*char’);  %读取fid指向位置开始后面的8个字符并以字符串的格式返回(e2与e1一起使用时)
>>fclose(fid)
5、  fscanf
用于读取文件中指定格式的内容,需要和fopen,  fclose配合使用,可以指定读取的字节数,返回的内容存放到一个一维数组中。例如:
>>  f=fullfile('D:','Matlab','example.txt');  >>  fid  fopen(f,  'r');
>>a=fscanf(fid,’%d’);  %读取文件中的所有数字,返回到数组a中
>>[a,count]=fscanf(fid,’%d’,5);  %读取文件中fid指向位置开始后面的5个数字,返回到数组a中,count返回a的大小,count<=5(返回的数字个数可能小于要求读取的个数)
>>fclose(fid)
6、  fgetl
用于读取文件中一行内容,不包括换行符,需要和fopen,  fclose配合使用。例如:  >>  f=fullfile('D:','Matlab','example.txt');  >>  fid  fopen(f,  'r');  >>tline=fgetl(fid); 
%从文件中读取fid指向的一行内容
>>fclose(fid) 
7、  fgets
用于读取文件中一行内容,包括换行符,需要和fopen,fclose配合使用。(只能用于文本
文件)例如:
>>  f=fullfile('D:','Matlab','example.txt');  >>  fid  fopen(f,  'r');  >>tline=fgets(fid);    %返回文件标识符指向的一行  >>tline=fgets(fid,nchar);    %返回文件标识符指向的一行的最多nchar个任何字符  >>fclose(fid)
8、  fwrite
用于将二进制数据写入文件中,需要和fopen,fclose配合使用。例如:  >>  f=fullfile('D:','Matlab','example.txt');  >>  fid  fopen(f,  'wb');
>>fwrite(fid,magic(5),'integer*4');    %创建一个二进制文件,由25个4位integer类型
的元素组成的5*5的矩阵
>>fclose(fid) 
9、  fprintf
用于将指定格式数据写入到文件中,需要和fopen,fclose配合使用。例如:  >>x  0:.1:1;  %从0到1以0.1为单位建立一个矩阵
>>y  [x;  exp(x)];
>>  f=fullfile('D:','Matlab','example.txt');  >>fid  fopen(f,'w');
>>fprintf(fid,'%6.2f  .8f\n',y);    %将矩阵y写入文件中,规定了写入格式  >>fclose(fid)
10、fseek

Matlab <wbr> <wbr>对路径的操作及读写文件


用于对文件指针位置的设定,需要和fopen,fclose配合使用。例如:  >>  f=fullfile('D:','Matlab','example.txt');  >>fid  fopen(f,'r');  >>fseek(fid,  19,  'bof');  >>A  fscanf(fid,’%d’,5);
>>fclose(fid) 
11、  ftell
用于得到文件指针位置,需要和fopen,fclose配合使用。例如:  >>  f=fullfile('D:','Matlab','example.txt');  >>fid  fopen(f,'r');  >>fseek(fid,0,’eof’);  >>position=ftell(fid);  >>fclose(fid)
12、  ferror
用于查询关于文件错误的输入或者输出,需要和fopen,fclose配合使用。例如:  >>  f=fullfile('D:','Matlab','example.txt');  >>fid  fopen(f,'r');
>>message1=ferror(fid);    %返回错误信息
>>message2=ferror(fid,’clear’)
%返回错误信息并清空
>>fclose(fid) 
13、  feof
用于判断是不是文件末尾,需要和fopen,fclose配合使用。例如:  >>  f=fullfile('D:','Matlab','example.txt');  >>fid  fopen(f,'r');  >>while  ~feof(fid)  >>tline=fgetl(fid);  >>printf(tline);  >>end
>>fclose(fid)  三、  。。  四、 

原文地址:http://blog.sina.com.cn/s/blog_632947d60102uxo4.html
  • 1
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值