how to save an array in each iteration?
1 view (last 30 days)
Show older comments
I have a parameter L and the following array SR:
L = 3;
SR = [ 0.0941 0.1129 0.0471 0 0 0
0.0941 0 0 0.0471 0.0941 0
0 0 0 0.0471 0 0.0471
0 0.1129 0 0 0.0941 0
0 0 0.0471 0 0 0.0471
0 0 0 0 0 0 ]
The code is:
for i = 1:L
A = - (1 / 2) * ( ( 2 * i - 1 ) / L) * SR
end
the result is. For each iteration a block.
A{1} = [ - 0.0157 - 0.0188 - 0.0078 0 0 0
- 0.0157 0 0 -0.0078 -0.0157 0
0 0 0 -0.0078 0 -0.0078
0 - 0.0188 0 0 -0.0157 0
0 0 - 0.0078 0 0 -0.0078
0 0 0 0 0 0 ]
A{2} = [ -0.0471 -0.0565 -0.0235 0 0 0
-0.0471 0 0 -0.0235 -0.0471 0
0 0 0 -0.0235 0 -0.0235
0 -0.0565 0 0 -0.0471 0
0 0 -0.0235 0 0 -0.0235
0 0 0 0 0 0 ]
A{3} = [ -0.0784 -0.0941 -0.0392 0 0 0
-0.0784 0 0 -0.0392 -0.0784 0
0 0 0 -0.0392 0 -0.0392
0 -0.0941 0 0 -0.0784 0
0 0 -0.0392 0 0 -0.0392
0 0 0 0 0 0]
The question is, how can I save a total array with all those three blocks?..
As the following configuration.
A = [ A{1} A{2} A{3} ]
0 Comments
Accepted Answer
Torsten K
on 19 Oct 2020
Here a variant with a 3d-matrix:
clearvars;
A = zeros(6,6,3)
L = 3;
SR = [ 0.0941 0.1129 0.0471 0 0 0
0.0941 0 0 0.0471 0.0941 0
0 0 0 0.0471 0 0.0471
0 0.1129 0 0 0.0941 0
0 0 0.0471 0 0 0.0471
0 0 0 0 0 0 ]
for i = 1:L
A(:,:,i) = - (1 / 2) * ( ( 2 * i - 1 ) / L) * SR
end
0 Comments
More Answers (2)
Torsten K
on 19 Oct 2020
Maybe a cell-array is what you are looking for?
A = cell(3,1);
L = 3;
SR = [ 0.0941 0.1129 0.0471 0 0 0
0.0941 0 0 0.0471 0.0941 0
0 0 0 0.0471 0 0.0471
0 0.1129 0 0 0.0941 0
0 0 0.0471 0 0 0.0471
0 0 0 0 0 0 ]
for i = 1:L
A{i,1} = - (1 / 2) * ( ( 2 * i - 1 ) / L) * SR
end
4 Comments
madhan ravi
on 19 Oct 2020
Edited: madhan ravi
on 19 Oct 2020
A = cell(3, 1); % this is missing from your copied code, COPY IT properly
See Also
Categories
Find more on Data Types 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!