How to store data in a nested for loop?

This is my skeleton Code:
c = 0
for J = 1: 1 : 12
c = c+1;
.
.
.
for delta = 1: 1 : 10
.
.
.
A (c) =
B (c) =
C (c) =
D (c) =
end
end
Here the output of A, B, C, D are (12 by 1) column vectors. In my case i can only store one 12 by 1 column vector A for delta = 10. I want to store all the A vectors for delta 1 to 10 and store side by side so that i can get a 12 by 10 matrix.
Same thing implies for B,C,D also.
How can i store the data in this pattern?

 Accepted Answer

madhan ravi
madhan ravi on 14 Nov 2018
Edited: madhan ravi on 14 Nov 2018
A=cell(12,10); %pre-allocation for speed and efficiency
B=cell(12,10);
C=cell(12,10);
D=cell(12,10);
for J = 1:12
for delta = 1:10
A{c,delta} =
B{c,delta} =
C{c,delta} =
D{c,delta} =
end
end
see { } which stores the values as cell , to view the values simply do
celldisp(A)

12 Comments

Mr. 206
Mr. 206 on 14 Nov 2018
Edited: Mr. 206 on 14 Nov 2018
Hi,
See using A (c) i am piling all the A values for J loop into one column (12 by1) vector. Now for delta there are 10 such kind of column vectors (12 by 1).
I just need to pile them together to get a 12 by 10 matrix. Hope i can make my point.
yes i understood your point see edited answer
celldisp(A) is not giving a 12 by 10 matrix. Rather it is giving a lot of individual numbers!
you could do
[A{:}]
also whats your formula on right hand side it should produce 12by1 elements in an iteration
A is actually producing one number, after doing A (c) it creates a 12 by 1 column vector.
madhan ravi
madhan ravi on 14 Nov 2018
Edited: madhan ravi on 14 Nov 2018
I want to store all the A vectors for delta 1 to 10 and store side by side so that i can get a 12 by 10 matrix.
? so did you try my code?
Mr. 206
Mr. 206 on 14 Nov 2018
Edited: Mr. 206 on 14 Nov 2018
It creates one long column vector. It is piling all the A in one column vector
can you provide the formula so i can try it out myself?
I solved the problem. Thanks for your effort.
c = 0
for J = 1: 1 : 12
c = c+1;
.
.
.
for delta = 1: 1 : 10
.
.
.
A (c,delta) =
B (c,delta) =
C (c,delta) =
D (c,delta) =
end
end
Thats exactly what my answer would also give you
May be due to something inside my code it is not acting as expected.
To me your logic looks good. I am accpeting the Answer.
Again thanks for your help.

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Asked:

on 14 Nov 2018

Commented:

on 14 Nov 2018

Community Treasure Hunt

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

Start Hunting!