matlab中uigetfile的用法

来源:互联网 发布:数据挖掘领域国外大牛 编辑:程序博客网 时间:2024/05/10 19:55

函数:uigetfile


【功能描述】创建标准的对话框并通过交互式操作取得文件名

【函数用法】

uigetfile:显示一个模态对话框,对话框列出了当前目录下的文件和目录,用于可以选择一个将要打开的文件名。如果文件名是有效的且该文件存在,则当用户点击Open时函数uigetfile返回该文件名。若不存在,uigetfile显示一个控制返回对话框值的错误提示信息,此时用户可以输入另外的文件名或点击Cancel按钮。如果用户点击Cancel按钮或关闭对话框,函数uigetfile将返回0。


[FileName,PathName,FilterIndex] = uigetfile(FilterSpec):创建并显示对话框,列出当前目录下的文件。

FilterSpec决定文件的初始显示,它可以为一个文件全名或者包含通配符*,如‘*.doc’表示列出所有的文档文件。


如果FilterSpec是一个包含文件名的字符串,则该文件名所在的文件名域将被选中并显示出来,且该文件的扩展名将作为过滤作用;
如果FilterSpec是一个包含文件路径的字符串,例如‘.’,’..’或’/’,例如‘../*.m’表示列出当前目录上的所有M文件;
如果FilterSpec是一个单元数组,则其第一列为扩展名列表,第二列为描述列表;
如果FilterSpec没有指定路径对象,则uigetfile将使用默认路径下的所有文件类型。


此函数的具体用法:


[FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName)
FileName:返回的文件名
PathName:返回的文件的路径名
FilterIndex:选择的文件类型
FilterSpec:文件类型设置
DialogTitle:打开对话框的标题
DefaultName:默认指向的文件名


例子:

(1)最简单的例子

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. [FileName,PathName] = uigetfile('.m','Select the M-file');  


(2)设置多种文件类型

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. >> [filename, pathname] = ...  
  2.      uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'File Selector');  

(3)为文件类型设置说明,注意书写格式

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. >> [filename, pathname] = uigetfile( ...  
  2. {'*.m;*.fig;*.mat;*.mdl','MATLAB Files (*.m,*.fig,*.mat,*.mdl)';  
  3.    '*.m',  'M-files (*.m)'; ...  
  4.    '*.fig','Figures (*.fig)'; ...  
  5.    '*.mat','MAT-files (*.mat)'; ...  
  6.    '*.mdl','Models (*.mdl)'; ...  
  7.    '*.*',  'All Files (*.*)'}, ...  
  8.    'Pick a file');  

(4)可返回选择的文件类型序号,并且可以设置文件多选,设置文件多选时注意,当只选了一个文件时,返回的filename为字符串,选择多个文件时,返回的元胞类型。

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. >> [filename, pathname, filterindex] = uigetfile( ...  
  2. {  '*.mat','MAT-files (*.mat)'; ...  
  3.    '*.mdl','Models (*.mdl)'; ...  
  4.    '*.*',  'All Files (*.*)'}, ...  
  5.    'Pick a file', ...  
  6.    'MultiSelect', 'on');  

(5)可以设置默认文件名


[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. >> uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...  
  2.           '*.*','All Files' },'mytitle',...  
  3.           'myfile.jpg')  

一点小技巧:当返回了一个文件的时候,可以用fullfile将路径和文件名组合起来,例如:

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. >> [filename, pathname] = uigetfile('*.m', 'Pick an M-file');  
  2. if isequal(filename,0)  
  3.    disp('User selected Cancel')  
  4. else  
  5.    disp(['User selected', fullfile(pathname, filename)])  
  6. end  
  7. User selected Cancel  
0 0