Matlab app - Using properites(app) opens another instance of the app

1 次查看(过去 30 天)
Hello, I am trying to write a function that will save apps properties to a .mat file. To do this I have called properties(app) and then loop over these properties until I get the the properties I want to save. However, my function causes another window of the app to open. After some troubleshooting I realise that this occurs when properties(app) is called. my code is included below for clarity.
function savesimfile(app, filename, fileloc)
props = properties(QFM3);
savestate = 0
savestartmarker = 'SaveDataStart'
for iprop = 1:length(props)
ipropname = props{iprop}
if ipropname == savestartmarker
savestate = 1
elseif savestate == 1
disp(ipropname)
end
end
end
  3 个评论
Walter Roberson
Walter Roberson 2023-10-2
props = properties(QFM3);
Is QFM3 the name of the class? If so then that statement would be calling the class constructor.
Thorne Hanna-Spain
Thorne Hanna-Spain 2023-10-2
编辑:Thorne Hanna-Spain 2023-10-2
Thanks for responding. I am new to matlab app design and classes in general. QFM3 is the name of the app and the name of the 'primary' class. My variables are stored in properties of this class alongside other properties matlab app uses to construct the app gui. Is there a way to just access this properties? I have included code to help discribe this structure below:
classdef QFM3 < matlab.apps.AppBase
% Properties that correspond to app components
properties (Access = public)
UIFigure matlab.ui.Figure
FileMenu matlab.ui.container.Menu
...
end
properties (Access = public)
% my properties
SaveDataStart = 0
SimFileName = '' %Simulation File Name
...

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2023-10-2
Change
props = properties(QFM3);
to
props = properties(app);
This assumes that savesimfile is a method of class QFM3.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by