Matlab GUI的文件打开和保存uigetfile uigetdir | 您所在的位置:网站首页 › matlab中uiputfile函数 › Matlab GUI的文件打开和保存uigetfile uigetdir |
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为对话框名称 |
CopyRight 2018-2019 实验室设备网 版权所有 |