emptying each row of matrix of a in a loop then uses respective matrices produced from it to get a certain value
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a matrix, a
a = [1 2;
1 3;
1 5;
1 7;
1 8;];
and this matrix a, is emptied in each row per loop until the last one using this code from Matt J
a0=a;
for i=1:size(a,1)
a=a0;
a(i,:)=[],
end
which result in:
a = [1 3;
1 5;
1 7;
1 8;];
a = [1 2;
1 5;
1 7;
1 8;];
a = [1 2;
1 3;
1 7;
1 8;];
a = [1 2;
1 3;
1 5;
1 8;];
a = [1 2;
1 3;
1 5;
1 7;];
can I create another loop to calculate a certain value, w, from the results from each loop beginning with the orginal until the last one. After each loop answer value, w, is tabulated in matrix b
b = [w
w
w
w
w
w]
there 6 values of w since we consider the orginal a
4 commentaires
David Hill
le 22 Août 2019
How about,
preallowcating array b = zeros(size(a,1)-1,2,size(a,1));
and having the following in the loop
b(:,:,i)=a;
Réponse acceptée
Matt J
le 22 Août 2019
Modifié(e) : Matt J
le 22 Août 2019
Why not as follows,
b=nan(size(a,1),1); %pre-allocate
for i=1:size(a,1)
tmp=a;
tmp(i,:)=[],
b(i)=max(tmp(:))-min(tmp(:)); %example derived quantity
end
5 commentaires
David Hill
le 22 Août 2019
best to pre-allowcate as Matt discribed. you could b=[]; outside loop and b=[b,w];inside loop. Matt's solution works best.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!