matlab gui 保存文件,Matlab GUI的文件打開和保存uigetfile uigetdir
1.uigetfile文件打開對話框(1)方式調用格式:[FileName,PathName,FilterIndex]=uigetfile[FileName,PathName,FilterIndex]=uigetfile('FileSpec')FileName,PathName,FilterIndex]=uigetfile('FileSpec','DialogTitile','DefaultNa.
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為對話框名稱
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)