matlab中uigetfile命令的應(yīng)用

2017-01-17  by:CAE仿真在線  來(lái)源:互聯(lián)網(wǎng)

uigetfile命令的應(yīng)用

此函數(shù)的用法為

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

FileName:返回的文件名

PathName:返回的文件的路徑名

FilterIndex:選擇的文件類型

FilterSpec:文件類型設(shè)置

DialogTitle:打開(kāi)對(duì)話框的標(biāo)題

DefaultName:默認(rèn)指向的文件名

例子:(接來(lái)自matlab的幫助)

1.最簡(jiǎn)單的形式,只設(shè)置了一種可選擇的文件類型

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

2.設(shè)置多種文件類型

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

3.可以為文件類型設(shè)置說(shuō)明,注意書(shū)寫(xiě)格式

[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.可返回選擇的文件類型序號(hào),并且可以設(shè)置文件多選,設(shè)置文件多選時(shí)注意,當(dāng)只選了一個(gè)文件時(shí),返回的filename為字符串,選擇多個(gè)文件時(shí),返回的元胞類型。

[filename, pathname, filterindex] = uigetfile( ...
{'*.mat','MAT-files (*.mat)'; ...
'*.mdl','Models (*.mdl)'; ...
'*.*','All Files (*.*)'}, ...
'Pick a file', ...
'MultiSelect', 'on');

5.可以設(shè)置默認(rèn)文件名

uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files' },'mytitle',...
'C:\Work\myfile.jpg')

更多文件對(duì)話框,可參考matlab幫助。

一點(diǎn)小技巧:當(dāng)返回了一個(gè)文件的時(shí)候,可以用fullfile將路徑和文件名組合起來(lái),如

[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

上傳一個(gè)自己編的小程序,用來(lái)實(shí)現(xiàn)圖片文件的批量縮放(幫班級(jí)上傳圖片,但是圖片太大了,太占空間,若一個(gè)一個(gè)縮小有太費(fèi)事,于是就有了這個(gè)小程序,呵呵,僅為應(yīng)用,未考慮異常處理)

%修改圖片的大小
%%
clc
clear all
close all
%%
scale=inputdlg('縮放比(大于1為放大,小于1為縮小)','請(qǐng)輸入縮放比',1,{'0.5'});
%%
[filename, pathname] = uigetfile( ...
{'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files' },...
'請(qǐng)選擇要修改的圖片(可多選)', ...
'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函數(shù)實(shí)現(xiàn)一個(gè)要求用戶輸入信息的對(duì)話框,用法如下

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

prompt:輸入文本框的標(biāo)簽

dlg_title:對(duì)話框的標(biāo)題

num_lines:輸入文本框的行數(shù)

defAns:默認(rèn)的文本框內(nèi)容

options:一些可選的對(duì)話框選項(xiàng)

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

返回為字符串,如果想轉(zhuǎn)化為數(shù)字,可以是使用函數(shù)eval。

另外input函數(shù)也可以實(shí)現(xiàn)用戶信息輸入,不過(guò)是在命令行中輸入,也很簡(jiǎn)單、常用。


開(kāi)放分享:優(yōu)質(zhì)有限元技術(shù)文章,助你自學(xué)成才

相關(guān)標(biāo)簽搜索:matlab中uigetfile命令的應(yīng)用 MatLab培訓(xùn) MatLab培訓(xùn)課程 MatLab在線視頻教程 MatLab技術(shù)學(xué)習(xí)教程 MatLab軟件教程 MatLab資料下載 MatLab代做 MatLab基礎(chǔ)知識(shí) Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓(xùn) Abaqus培訓(xùn) 

編輯
在線報(bào)名:
  • 客服在線請(qǐng)直接聯(lián)系我們的客服,您也可以通過(guò)下面的方式進(jìn)行在線報(bào)名,我們會(huì)及時(shí)給您回復(fù)電話,謝謝!
驗(yàn)證碼

全國(guó)服務(wù)熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號(hào)金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓(xùn)QQ咨詢:點(diǎn)擊咨詢 點(diǎn)擊咨詢
項(xiàng)目QQ咨詢:點(diǎn)擊咨詢
email:kf@1cae.com