concatenation of few matrix with a loop
Show older comments
C{1} = [total1979_125_30];
C{2} = [total1980_125_30];
C{3} = [total1981_125_30];
C{4} = [total1982_125_30];
C{5} = [total1983_125_30];
...upto C{40} = [total2019_125_30];
just help me making the loop
So that I can use
A = cat(3,C{:});
M = mean(A,3);
2 Comments
Stephen23
on 7 Oct 2020
See original question here:
Stephen23
on 7 Oct 2020
The cause of your problem is that you put meta-data (e.g. dates) into variables names. Meta-data is data and belongs in variables, not in variable names. Once you have made that bad design decision, you force yourself into writing slow, complex, inefficient, obfuscated, buggy code to try and access those multiple data arrays:
So far you have not told us the most important information: how did you get those arrays into the workspace? Did you write them all out by hand? My guess is that you used load in a loop, in which case you can fix the problem at its cause by loading into an output variable, e.g.:
N = the number of files
C = cell(1,N);
for k = 1:N
F = the k-th filename
S = load(F);
C(k) = struct2cell(S);
end
Note how this does not require evil eval anywhere. Once you tell us how you actually get those multiple variables into the workspace, someone can help you to import/create the data in a better way.
Accepted Answer
More Answers (0)
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!