How to display names in edit field of the files selected to run .m file using button in appdesigner
2 views (last 30 days)
Show older comments
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
0 Comments
Answers (1)
Deepak
on 8 Aug 2024
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.
0 Comments
See Also
Categories
Find more on File Operations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!