可以使用MATLAB的函数uigetfile()打开文件选择对话框,选择文件,返回文件名和文件路径。
有了文件名和文件路径后我们便可以使用读文件函数读取相应的文件。
函数uigetfile()的语法如下:
file = uigetfile
[file,path] = uigetfile
[file,path,indx] = uigetfile
___ = uigetfile(filter)
___ = uigetfile(filter,title)
___ = uigetfile(filter,title,defname)
___ = uigetfile(___,'MultiSelect',mode)
%上面前三行表示输出参数可用形式,后三行表示输入参数可用形式。
输出参数意义如下:
file—返回的文件名;
path—返回的文件路径;
indx—返回的在对话框中选择的筛选器的索引,比如筛选器有两个筛选,分别为avi和mp4,如果选择筛选出avi类型的文件,那么选择avi文件后,indx的值为1;如果选择筛选出mp4类型的文件,那么选择mp4文件后,indx的值为2;
输入参数意义如下:
filter—指定文件扩展名,根据该扩展名筛选对话框中显示的文件。
title—指定文件选择对话框的标题。
defname—要在对话框打开时在文件名字段中显示一个默认的文件名,请将此文件名作为 defname 输入参数进行传递。这个参数光靠文字叙述不太容易理解,举一个例子大家就明白了,示例代码如下:
[file,path] = uigetfile('*.mp4', 'Select an mp4 file','03-beauty.mp4');
运行结果如下:
‘MultiSelect’,mode—指定用户是否可以选择多个文件。将模式设置为 ‘on’ 将允许进行多选。默认情况下设置为 ‘off’。
代码如下:
[FileName,PathName,Indx]=uigetfile({ '*.avi','avi (*.avi)'; '*.mp4','mp4 (*.mp4)';'*.*','All Files (*.*)'},'Open Video File');
以上参数意义如下图所示:
我们用avi筛选器选择文件“03-ngkmm8gs.avi”,运行结果如下:
我们用mp4筛选器选择文件“01-r2rnv4xn.mp4”,运行结果如下:
我们用“*.*”筛选器选择文件“01-r2rnv4xn.mp4”,运行结果如下:
请大家注意上面各运行结果中Indx值的变化。Indx值的变化是因为筛选器不一样。
我们再看一下多选文件的情况,示例代码如下:
[FileName,PathName,Indx]=uigetfile(...
{ '*.avi','avi (*.avi)'; '*.mp4','mp4 (*.mp4)';'*.*','All Files (*.*)'},...
'Open Video File','MultiSelect','on');
关于MATLAB的函数uigetfile(),就说到这里,大家看到这里也应该很清楚它的用法了。如果还有疑问,欢迎在博文下留言交流。