Matlab使用函数解析之文件操作

【cd函数】
   函数功能:切换到指定目录
【fullfile函数】
   利用文件各部分信息创建[1]合成完整文件名。
   用法:
   fullfile('dir1', 'dir2', ..., 'filename')
   f = fullfile('dir1', 'dir2', ..., 'filename')
   解释:若文件'100.hea' 的路径为'D:\matalab\xindianshuju\wenjian\100.hea',那么    


'dir1'='D:';'dir2'='matlab';'dir3'='xindianshuju';‘dir4'='wenjian';'filename'='100.hea'
【dir函数】
   函数功能:获得指定文件夹下的所有子文件夹和文件,并存放在在一种为文件结构体数组中.     
   调用方式:
      filelist=dir('.')列出当前目录下所有子文件夹和文件
      filelist=dir('D:\Matlab')列出指定目录下所有子文件夹和文件
      filelist=dir('*.m')列出当前目录下符合正则表达式的文件夹和文件
【mkdir函数】
【exist函数】
   函数功能:一个参数和两个参数的,作用都是用于确定某值是否存在:
   调用方式:
      方式1. ret = exist( a)
            0 不存在则返回值 
            1 name 可以是变量名,如果存在,返回值 
            2 函数名、m 文件名,存在则返回值 
            3 mex 文件、dll 文件,存在则返回值 
            4 内嵌的函数,存在则返回值 
            5 p码文件 , 存在则返回值 
            6 目录,存在则返回值 
            7 路径,存在则返回值 
            8 Java class,存在则返回值 
      方式2. ret = exist( 'name', 'kind')

            kind 表示 name 的类型,可以取的值为:builtin(内建类型),class(类),dir(文件夹),file(文件或文件夹),var(变量)。

 【addPath】
功能:调用处在不同文件夹的MATLAB函数 ,相当于File->Set Path->Add Folder;
举例:cmd的当前目录为E:\实验室\;该文件夹 包含了fun1.m文件和utils(sub_fun.m)文件夹,我们可以直接运行fun1.m,但不能运行sub_fun.m。必须加以下代码
     addpath('utils');%把 E:\实验室\utils加入到搜索路径中
注意:windons系统采用"\"划分路径,在使用的时候要转化成"/"
///
uigetfile命令的应用  
此函数的用法为
[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName)
FileName:返回的文件名
PathName:返回的文件的路径名
FilterIndex:选择的文件类型
FilterSpec:文件类型设置
DialogTitle:打开对话框的标题
DefaultName:默认指向的文件名
 
例子:(接来自matlab的帮助)
1.最简单的形式,只设置了一种可选择的文件类型
[FileName,PathName] = uigetfile('*.m','Select the M-file');
2.设置多种文件类型
[filename, pathname] = ...
     uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'File Selector');
3.可以为文件类型设置说明,注意书写格式
[filename, pathname] = uigetfile( ...
{'*.m;*.fig;*.mat;*.mdl','MATLAB Files (*.m,*.fig,*.mat,*.mdl)';
   '*.m',  'M-files (*.m)'; ...
   '*.fig','Figures (*.fig)'; ...
   '*.mat','MAT-files (*.mat)'; ...
   '*.mdl','Models (*.mdl)'; ...
   '*.*',  'All Files (*.*)'}, ...
   'Pick a file');
4.可返回选择的文件类型序号,并且可以设置文件多选,设置文件多选时注意,当只选了一个文件时,返回的filename为字符串,选择多个文件时,返回的元胞类型。
[filename, pathname, filterindex] = uigetfile( ...
{  '*.mat','MAT-files (*.mat)'; ...
   '*.mdl','Models (*.mdl)'; ...
   '*.*',  'All Files (*.*)'}, ...
   'Pick a file', ...
   'MultiSelect', 'on');
5.可以设置默认文件名
uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
          '*.*','All Files' },'mytitle',...
          'C:\Work\myfile.jpg')
//
【fileparts,which(mfilename)】
mfilename 返回当前正在运行的函数所在文件的文件名。
which:找出函数和文件的位置
举例
K>>which(mfilename)
ans =


E:\实验室\俊君师兄\计划\眼睛定位_人脸对齐\facedet\runfacedet.m


//
[pathstr, name, ext, versn] = fileparts(filename)
其中filename是要解析的文件的完整路径,例如:E:\games\IGI\bin\IGI.exe。fileparts将这个文件名(包含完整路径信息)各部分分别提取到四个变量中。
其中pathstr是这个文件的路径名,name是文件名,ext是包含一个点号文件的扩展名(指定了文件的类型)。matlab帮助文档中指明,第四个参数将在未来版本中舍弃。
【system】
在Matlab里可以通过system这个命令调出dos命令,比如:执行语句system('mkdir step1')就可以在当前目录下建立名为step1的文件夹!在实际编程中,可以结合函数exist使用。比如:
if exist('Step1') == 0
system('mkdir Step1');
end
即:先判断当前目录下是否以存在名为Step1的子目录(文件夹),如果不存在,则建立。
【dlmread】
dlmread:读取有分隔符的ASCII文件到矩阵函数
dlmread


读取有分隔符的ASCII文件到矩阵函数


图形接口


作为dlmread的替代,可以使用导入向导。可以从【File菜单】中激活导入向导。


语法


M = dlmread('filename')
M = dlmread('filename', delimiter)
M = dlmread('filename', delimiter, R, C)
M = dlmread('filename', delimiter, range)


描述


M = dlmread('filename') 从由filename指定的具有分割标志的ASCII文件中读取数值数据,使用一个分隔符作为格式化的文件的暗示信息。默认分隔符使用逗号(,)。 


M = dlmread('filename', delimiter) 这里指定了分隔符。使用\t代表制表符tab分隔。


注意:当从格式文件推断分隔符时,连续的空格符作为一个分隔符对待。但是不同的是, 如果通过分隔符输入参数指定了分隔符,那么重复的分隔字符将分别作为单独的分隔符对待。 


M = dlmread('filename', delimiter, R, C)  R和C指定了数据在文件中的左上角位置。R和C的值从0开始。R = 0, C = 0指定了了文件中的第一个值,位于文件的左上角。


M = dlmread('filename', delimiter, range) 读取由range定义的区域块的数值,range = [R1 C1 R2 C2] 。也可以使用电子表格符号来指定,range = 'A1..B7'.。


备注


dlmread将用0填充没有边界的区域。有多行的数据文件,如果以非空格分隔符结束,例如分号,则在导入后将会多产生一行全0的列与最后。 


dlmread在导入任何复数时,将作为一个整体导入一个复数单元中,转换实部和虚部到特定的数据类型。正确的复数格式为
  ±<real>±<imag>i|j   5.7-3.1i
  ±<imag>i|j   -7j
嵌入了空格的复数是不正确的格式,空格将被认为是分隔符。
///
文件删除  delete

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
自带的结构体
imformats
 IMFORMATS  Manage file format registry.
    FORMATS = IMFORMATS returns a structure containing all of the values in
    the file format registry.  The fields in this structure are:
 
         ext         - A cell array of file extensions for this format
         isa         - Function to determine if a file "IS A" certain type
         info        - Function to read information about a file
         read        - Function to read image data a file
         write       - Function to write MATLAB data to a file
         alpha       - 1 if the format has an alpha channel, 0 otherwise
         description - A text description of the file format
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
【mex】
   函数功能:是要通过使用MEX文件,MEX文件使得调用C函数和调用Matlab的内置函数一样方便。MEX文件是由原C代码加上MEX文件专用的接口函数后编译而成的。可以 


      这样理解,MEX文件实现了一种接口,它把在Matlab中调用函数时输入的自变量通过特定的接口调入了C函数,得出的结果再通过该接口调回Matlab。
   调用方式:
      如果我有一个用C语言写的函数,实现了一个功能,如一个简单的函数:
      double add(double x, double y)
      {
        return x + y;
      }
 
      现在我想要在Matlab中使用它,比如输入:
 
      >> a = add(1.1, 2.2)
          3.3000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值