Matlab 接受特定类型的文件

Matlab 接受特定类型的文件,matlab,file,Matlab,File,我有一个使用浏览按钮搜索文件的GUI: function Browse(app, event) FileName,FilePath ]= uigetfile(); ExPath = fullfile(FilePath, FileName); app.FileTextArea.Value = ExPath; end 我将文件路径保存在一个文本区域中。 我有另一个按钮,可以启动以文件路径为参数的matlab脚本,因此,如果可能,我只接受某种类型的文件(.ctm,这

我有一个使用浏览按钮搜索文件的GUI:

function Browse(app, event)
     FileName,FilePath ]= uigetfile();
     ExPath = fullfile(FilePath, FileName);
     app.FileTextArea.Value = ExPath;  
end
我将文件路径保存在一个文本区域中。 我有另一个按钮,可以启动以文件路径为参数的matlab脚本,因此,如果可能,我只接受某种类型的文件(.ctm,这是我自己的文件类型),如下所示:

if file is .ctm
    do something
else 
    print('a .ctm file is needed')

感谢您的帮助

您可以做两件事:

  • 使用
    uigetfile()

  • 验证所选文件是否具有扩展名
    .ctm

    [data.dir,data.fileName,data.ext] = fileparts(fullfile(dataDir, fileName)); % dataDir and fileName from pt. 1
    
    if strcmp(data.ext, '.ctm')
        % do something
    else 
        print('a .ctm file is needed')
    end
    

  • 请记住,两者都不会验证文件的内容是否是您期望的内容,如果有人手动修改文件的扩展名,您的程序很可能会崩溃。这对一开始很好,但是如果你想做一个更可靠的检查,你应该验证文件的内容是正确的,而不是它的扩展名。

    这正是我想做的。问题是我的“文件研究”按钮与“启动”按钮位于不同的回调函数中,所以我不知道是否可以使用“[data.dir,data.fileName,data.ext]“其他回调函数中的值?是的,您可以使用它。您可以阅读有关在回调之间共享数据的内容。没关系,我找到了如何避免此问题并修饰我的应用程序:)非常感谢!
    [data.dir,data.fileName,data.ext] = fileparts(fullfile(dataDir, fileName)); % dataDir and fileName from pt. 1
    
    if strcmp(data.ext, '.ctm')
        % do something
    else 
        print('a .ctm file is needed')
    end