How do I prevent rewriting of data in my structure array within a for loop?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
I have a for loop running as show below. The goal is for the data to be added as a new row to the fields with every loop run. Currently, it is rewriting previous rows from the loops run as 0. How do I preserve the data collected while adding to it?
if buttoncounter<=5
for i=1:buttoncounter
r1(buttoncounter)=randi(length(gettrialone));
r2(buttoncounter)=randi(length(paytrialone));
set(messaget1g1,'String',sprintf('Collect $%d and pay a fine of $%d',...
[gettrialone(r1(buttoncounter)),paytrialone(r2(buttoncounter))]))
get(buttonA,'Enable');set(buttonA,'Enable','off');
get(buttonB,'Enable');set(buttonB,'Enable','off');
datat1g1(buttoncounter).Button_Pressed(buttoncounter,1)='B';
datat1g1(buttoncounter).Earned(buttoncounter,1)=gettrialone(r1(buttoncounter));
datat1g1(buttoncounter).Fee(buttoncounter,1)=paytrialone(r2(buttoncounter));
end
end
0 Kommentare
Antworten (1)
Chris
am 12 Nov. 2022
Bearbeitet: Chris
am 12 Nov. 2022
Perhaps something like:
if buttoncounter<=5
LEN = numel(data1g1);
for i=1:buttoncounter
% ...
data1g1(buttoncounter).Button_Pressed(LEN+buttoncounter,1)='B';
% ...
end
end
5 Kommentare
Chris
am 15 Nov. 2022
@Keerthana Natarajan it sounds like your code is in a callback/function. Variables created in a function are forgotten when the function completes. Persistent variables are one option to set scope; best practice is to pass the variables you want to keep into and out of the function as arguments.
Stephen23
am 15 Nov. 2022
Siehe auch
Kategorien
Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!