matlab uigetfile()的使用

本文详细介绍了Matlab中uigetfile命令的使用方法及参数含义,包括如何设置文件类型过滤器、对话框标题等。同时,提供了一个使用该命令进行图片批量缩放的小程序实例。

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

转自http://blog.sina.com.cn/s/blog_94afa86c0100xkwj.html

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')

更多文件对话框,可参考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:\Applications\matlab\myfun.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函数也可以实现用户信息输入,不过是在命令行中输入,也很简单、常用

### Matlab `uigetfile` 函数使用教程 #### 功能描述 `uigetfile` 是用于创建文件选择对话框的 MATLAB 内置函数。该函数允许用户通过图形界面交互方式来选取文件,并返回所选文件的名字以及路径[^3]。 #### 基本语法 - `[filename, pathname] = uigetfile(filter)` 此调用会打开一个带有指定过滤器的文件选择对话框,让用户挑选单个文件。当用户点击确认按钮后,则返回被选中的文件名和其所在的目录;如果取消操作则两个输出都将为空字符向量[]。 - `[filename,pathname,user_canceled]=uigetfile(...)` 除了上述功能外,还可以设置第三个逻辑型变量作为额外输出参数,用来指示是否按下了取消键关闭窗口(true表示已按下),这有助于程序进一步处理不同情况下的响应行为[^4]。 #### 参数解释 - **filter**: 定义可选项列表以限定可以浏览到哪些类型的文件,默认情况下接受所有文件(*.*),也可以自定义为特定扩展名如'.m','.jpg'等字符串形式或元胞数组{'*.ext';'*'}的形式传递给函数[^1]。 #### 实际应用案例 下面给出一段简单的代码片段展示如何利用 `uigetfile` 来获取用户选定图像文件的信息: ```matlab % 设置只显示JPEG图片供选择 [file,path] = uigetfile({'*.jpg; *.jpeg'}, 'Select an Image File'); if isequal(file,0) disp('User selected Cancel') else fullFileName = fullfile(path,file); % 显示完整的文件路径 fprintf(['Selected file: ',fullFileName,'\n']); end ``` 为了更方便地组合路径与文件名称,在实际编程过程中经常配合使用 `strcat()` 或者更为推荐的 `fullfile()` 函数[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值