Matlab中uigetfile命令的应用

转载 2015年11月20日 21:18:03

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:默认指向的文件名

 

例子:(接来自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:Workmyfile.jpg')

更多文件对话框,可参考matlab帮助。

 

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

[filename, pathname] = uigetfile('*.m', 'Pick an M-file');
if isequal(filename,0)
   disp('User selected Cancel')
else
   disp(['User selected', fullfile(pathname, filename)])
end

fullfile的用法如下

f = fullfile('C:', 'Applications', 'matlab', 'myfun.m')
f = C:Applicationsmatlabmyfun.m

 

 

上传一个自己编的小程序,用来实现图片文件的批量缩放(帮班级上传图片,但是图片太大了,太占空间,若一个一个缩小有太费事,于是就有了这个小程序,呵呵,仅为应用,未考虑异常处理)

%修改图片的大小
%%
clc
clear all
close all
%%
scale=inputdlg('缩放比(大于1为放大,小于1为缩小)','请输入缩放比',1,{'0.5'});
%%
[filename, pathname] = uigetfile( ...
    {'*.jpg;*.tif;*.png;*.gif','All Image Files';...
    '*.*','All Files' },...
    '请选择要修改的图片(可多选)', ...
    'MultiSelect', 'on');
%%
if ~iscell(filename)
    filename1{1}=filename;
else
    filename1=filename;
end
%%
for i=1:length(filename1)
    image=imread(strcat(pathname,filename1{i}));
    image_resize=imresize(image,eval_r(scale{1}));
    imwrite(image_resize,strcat(pathname,datestr(now, 'mmddHH'),filename1{i}));
end

 

其中的inputdlg函数实现一个要求用户输入信息的对话框,用法如下

answer = inputdlg(prompt,dlg_title,num_lines,defAns,options)

prompt:输入文本框的标签

dlg_title:对话框的标题

num_lines:输入文本框的行数

defAns:默认的文本框内容

options:一些可选的对话框选项

 

prompt={'Enter the matrix size for x^2:',...
        'Enter the colormap name:'};
name='Input for Peaks function';
numlines=1;
defaultanswer={'20','hsv'};

options.Resize='on';
options.WindowStyle='normal';
options.Interpreter='tex';

answer=inputdlg(prompt,name,numlines,defaultanswer,options);

 

返回为字符串,如果想转化为数字,可以是使用函数eval。

另外input函数也可以实现用户信息输入,不过是在命令行中输入,也很简单、常用。

 

链接至:http://hua1547.blog.163.com/blog/static/17070734720108822522954/


 

MATLAB中uigetfile函数使用方法

函数原型标准化打开选择文件对话框:function [FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,Default...
  • ws_20100
  • ws_20100
  • 2015年11月01日 12:34
  • 5339

matlab中uigetfile命令的应用

uigetfile命令的应用   此函数的用法为 [FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,Defaul...
  • yu12345678900
  • yu12345678900
  • 2013年04月23日 11:19
  • 623

matlab中uigetfile的用法

matlab中uigetfile的用法
  • u013476464
  • u013476464
  • 2014年11月06日 19:58
  • 2540

uigetfile命令的应用

此函数的用法为 [FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,DefaultName) FileNa...
  • u012116229
  • u012116229
  • 2015年04月08日 17:26
  • 274

matlab GUI之常用对话框(一)---uigetfile\ uiputfile \ uisetcolor \ uisetfont

常用对话框(一) 1.uigetfile  文件打开对话框 调用格式:      [FileName,PathName,FilterIndex]=uigetfile               ...
  • zjq2010014137
  • zjq2010014137
  • 2013年01月23日 11:30
  • 14459

uigetfile

uigetfile作用:打开对话框搜索获得文件。 [FileName,PathName,FilterIndex] = uigetfile(FilterSpec,DialogTitle,Def...
  • a200800170331
  • a200800170331
  • 2014年03月25日 16:54
  • 900

Matlab获取用户选择的单个或多个文件代码

使用Matlab的uigetfile(或uigetdir)来获取用户选择的输入图像文件,可以是单个也可以是多个文件,包含出错判断。...
  • liaoqix
  • liaoqix
  • 2015年04月28日 15:38
  • 1726

matlab uigetfile()的使用

转自http://blog.sina.com.cn/s/blog_94afa86c0100xkwj.html uigetfile命令的应用   此函数的用法为 [FileName,P...
  • lingkele
  • lingkele
  • 2015年09月21日 17:31
  • 463

matlab在高等数学中的应用

(1)求极限     (1.1)
  • sanqima
  • sanqima
  • 2014年04月18日 17:34
  • 962

Matlab中uigetfile( ) & iscell() 函数的使用

% 其固定格式为: [ filename , pathname , filterIndex ] = uigetfile( filterSpec , DialogTitle , DefaultName ...
  • SMF0504
  • SMF0504
  • 2016年07月02日 16:22
  • 741
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Matlab中uigetfile命令的应用
举报原因:
原因补充:

(最多只允许输入30个字)