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為對話框名稱

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐