How to display names in edit field of the files selected to run .m file using button in appdesigner

13 次查看(过去 30 天)
Hi I have a .m file which I wants to run using button function.
The .m file asks for the two input .mat files to be selected to execute
How can I display the names of the two input .mat files selected in the edit field boxes.
%%%%%%%% main model for reference
function RunModel
MFilDirName='ModelScripts'; %% Sub directory contains the supporting .m files/functions
addpath(MFilDirName) %% Add this subdirectory to the Matlab search path
if strcmp(LoadFiles(2),'EndExit') %% Load file is a .m function inside ModelScripts
disp('User abort')
return
end
end
%%%%%%%%%%%%%%% App designer run button
function RunButton(app, event)
RunModel;
end

回答(1 个)

Deepak
Deepak 2024-8-8,5:27
Hi Harish,
To my understanding, you have a MATLAB script that takes as input two MAT files, and you want to run the MATLAB script with a Push Button callback and display those two MAT file names in the Edit Field of the App Designer.
To solve this task, we can create a “LoadFiles.m” MATLAB script that will open a dialog box to select two MAT Files, then get the file names from the entire path by using the “fileparts” function of MATLAB.
In our Push Button Callback (RunButton), we can set the values of both Edit Fields with the file names if the status is correct. This way, we can display both MAT file names in the Edit Field.
Below is the App Designer and MATLAB code that addresses the task:
MyApp.mlapp (RunButton Callback)
function RunButton(app, event)
[status, fileNames] = RunModel;
if strcmp(status, 'Continue')
app.EditField1.Value = fileNames{1};
app.EditField2.Value = fileNames{2};
else
disp('User abort');
end
end
RunModel.m
function [status, fileNames] = RunModel
MFilDirName = 'ModelScripts'; %% Subdirectory contains the supporting .m files/functions
addpath(MFilDirName); %% Add this subdirectory to the Matlab search path
[status, fileNames] = LoadFiles(2); %% Load file is a .m function inside ModelScripts
if strcmp(status, 'EndExit')
disp('User abort');
return;
end
end
LoadFiles.m
function [status, fileNames] = LoadFiles(numFiles)
fileNames = cell(1, numFiles);
for i = 1:numFiles
[file, ~] = uigetfile('*.mat', 'Select a MAT-file');
if isequal(file, 0)
status = 'EndExit';
return;
else
[~, name, ext] = fileparts(file);
fileNames{i} = [name, ext];
end
end
status = 'Continue';
end
Attaching the documentation of functions used in the MATLAB script for reference:
I hope this helps.

类别

Help CenterFile Exchange 中查找有关 Search Path 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by