want to use output matrix obtained for every iteration of a for loop in another for loop.

hi, i am developing a code where i have 2 functions: the first function gives me a smaller matrix 'k'.
i want to obtain this 'k' matrix for every iteration.
then i want to add these smaller matrices into a larger one, for that i am using the second for loop.
can anyone please guide me on how i can save each 'k' matrix after every iteration, and then use the 'k' matrices and add them to a larger matrix 'K'?

6 commentaires

It is unclear to me what you mean by "add them to a larger matrix". Are you summing the small matrices? Or are they submatrices of the larger one? Or something else?
A small example of what you mean would help.
they are submatrices, i want to add them to a bigger matrix by specifying the row and column numbers.
We need more details. Are all of the smaller matrices the same size? Do you already know the row and column numbers where they go, or do you need to calculate them?
yes, all matrices are of the same size, and i know where they are supposed to go.
each small matrix is of 6*6, and large matrix is somewhere around 120*120
posr = 4;
posc = 3;
m = rand(6);
M = zeros(120);
M(posr:posr+5,posc:posc+5) = m
M = 120x120
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5457 0.9695 0.6962 0.8960 0.2307 0.4787 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4676 0.2877 0.9645 0.1411 0.8091 0.1535 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.7857 0.8168 0.4157 0.1047 0.8180 0.2973 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.4923 0.7581 0.6293 0.9764 0.0582 0.7979 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.1755 0.0105 0.4215 0.0759 0.2622 0.8527 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5153 0.6940 0.0167 0.7548 0.9984 0.7890 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
thank you so much for your help!!

Connectez-vous pour commenter.

 Réponse acceptée

Here are two possibilities:
% Save into cell arrays
nsmall = 4;
mcell = cell(nsmall,1);
for k = 1:nsmall
mcell{k} = rand(3); % Note curly brackets, to save as *contents* of the cell
end
% Save each matrix as a "slice" of a three-dimensional array
nsmall = 4;
m3d = zeros(3,3,nsmall);
for k = 1:nsmall
m3d(:,:,k) = rand(3); % Saving each slike
end

Plus de réponses (0)

Catégories

Produits

Version

R2021b

Question posée :

J
J
le 14 Avr 2024

Commenté :

J
J
le 16 Avr 2024

Community Treasure Hunt

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

Start Hunting!

Translated by