Azzera filtri
Azzera filtri

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

13 visualizzazioni (ultimi 30 giorni)
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

Risposte (1)

Deepak
Deepak il 8 Ago 2024 alle 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.

Categorie

Scopri di più su Search Path in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by