Struct variables don't save
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I have various matrices and I'd like them to be part of a struct. Each matrix is computed on its own, assigned to the struct, then the workspace is cleared except for the struct and its variables (clearvars -except matrices). My problem is when the program is finished, only the last variable in the struct is saved/exists. My syntax looks something like this:
matrices=struct; %initialize the struct
Next I compute the matrix and assign it
matrices.s1=matrix; %assign
Then I compute the next matrix and assign it
matrices.s2=matrix; % assign
I do this for about 30 matrices and when the program finishes, only one variable is in the struct - the most recent one. How can I overcome this? Many thanks.
3 Commenti
Stephen23
il 18 Nov 2015
Modificato: Stephen23
il 18 Nov 2015
You should probably switch to using a non-scalar structure, which would simplify assigning the values to the fields. Using non-scalar structures makes accessing the data much easier than using numbered field names!
Examples of using non-scalar structures:
Example Code:
>> A(1).data = 4;
>> A(2).data = 5;
>> A(3).data = 6;
OR
>> A = struct('data',{4,5,6});
>> A(2).data
ans = 5
Which means you can get the sum of all of the elements using this simple code:
>> sum([A.data])
ans = 15
Risposte (1)
Image Analyst
il 17 Nov 2015
Just use the debugger and find out where the earlier fields disappear. For example, so you have all 30 fields just before the call to clearvars and only one, s30, after you call it? Or when you assign matrices.s2, does matrices.s1 vanish at that point? If you knew how to use the debugger, this could be very straightforward. http://blogs.mathworks.com/videos/2012/07/03/debugging-in-matlab/
0 Commenti
Vedere anche
Categorie
Scopri di più su Function Creation in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!