Matlab GUI的文件打开和保存uigetfile uigetdir

本文详细介绍了Matlab中uigetfile函数的各种使用方法,包括设置文件类型、标题及默认文件名等,并展示了如何利用该函数进行图片批量处理。

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


1.uigetfile 文件打开对话框


(1)方式

           调用格式:

             [FileName,PathName,FilterIndex]=uigetfile

             [FileName,PathName,FilterIndex]=uigetfile('FileSpec')

             FileName,PathName,FilterIndex]=uigetfile('FileSpec','DialogTitile','DefaultName')

             返回参数  第一项为文件的名称,第二项为路径,第三项文件类型索引值(非0代表选择了打开,索                               引值分不同的类型赋值;0代表了选择了取消)

 

         输入参数

         第一项为文件的类型(*.m , *.mat ,*.dig ,*.mdl) 

         第二项为设置文件打开对话框的标题

         第三项为默认的文件名称


(2)方式

        此函数的用法为

[FileName,PathName,FilterIndex] =uigetfile(FilterSpec,DialogTitle,DefaultName)

FileName:返回的文件名

PathName:返回的文件的路径名

FilterIndex:选择的文件类型

FilterSpec:文件类型设置

DialogTitle:打开对话框的标题

DefaultName:默认指向的文件名


 2、uigetfile命令的应用 


1.最简单的形式,只设置了一种可选择的文件类型

[FileName,PathName] =uigetfile('*.m','Select the M-file');


2.设置多种文件类型

[filename, pathname] = ...
     uigetfile({'*.m';'*.mdl';'*.mat';'*.*'},'FileSelector');


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','AllImage 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

 

6、实现图片文件的批量缩放

%修改图片的大小
%%
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函数也可以实现用户信息输入,不过是在命令行中输入,也很简单、常用。

7、unigetdir,这个比较简单


folder_name = uigetdir
folder_name = uigetdir(start_path)
folder_name =uigetdir(start_path,dialog_title)
start_path为默认的路径,dialog_title为对话框名称


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值