how to save an array in each iteration?
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Torsten K
2020 年 10 月 19 日
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 件のコメント
その他の回答 (2 件)
Torsten K
2020 年 10 月 19 日
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 件のコメント
madhan ravi
2020 年 10 月 19 日
編集済み: madhan ravi
2020 年 10 月 19 日
A = cell(3, 1); % this is missing from your copied code, COPY IT properly
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!