Creating new variable in a subfunction .m file
Ältere Kommentare anzeigen
Here's the case, I have one main matlab file (main.m) and another sub matlab file (sub.m)
And I need to loop over main.m multiple times to execute sub.m, is it possible to create a new array containing the output of the sub.m? Or I must have a global variable declared and include it in the function
Let this be the case:
First loop:
A=[1 2 3 4 5];
Second loop:
A=[2 8 5 9 6];
Nth loop:
A=[x x x x x];
I need to create an array in the subfunction so that it is able to recognize and store all the maximum of As in the loop
Max_A=
5
9
.
.
N
Akzeptierte Antwort
Weitere Antworten (1)
per isakson
am 20 Jun. 2016
Bearbeitet: per isakson
am 20 Jun. 2016
No globals needed. Try
%%in main
R = nan( N, 5 ); % pre-allocate memory
for jj = 1 : N
R(jj,:) = sub();
end
I don't get the last part. Why not simply add after the loop
max_A = max( R, 2 );
3 Kommentare
Wei Nick Chan
am 20 Jun. 2016
per isakson
am 20 Jun. 2016
Bearbeitet: per isakson
am 20 Jun. 2016
"instead of overwriting each other"   the code I proposed doesn't overwrite.
If the problem is that R outgrows the physical memory (RAM), then you need to store to a file.
per isakson
am 20 Jun. 2016
Bearbeitet: per isakson
am 20 Jun. 2016
- "particular function"   I assume that's sub
- Is max values from previous calls used in sub? If so, sub has state. You could use a persistent variable to keep previous max values. However, there must be a better way.
Kategorien
Mehr zu Workspace Variables and MAT Files finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!