for loop options in Matlab
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I just learned about Matlab's ability to use matrices as arguments to a for loop;
This displays the columns of the matrix A
A = magic(5)
for n = A
disp(n)
end
I was wondering if it is possible to obtain a sequential index into a loop like this. ie. if I want to print the column number along with the column itself, can I continue with the form above or would I need to revert to a more typical form like
A = magic(5)
for jj = 1:length(A)
disp(['Column #',num2str(jj)])
disp(A(:,jj))
end
0 commentaires
Réponse acceptée
Walter Roberson
le 24 Sep 2012
You would need the more traditional form. There is no way to query which iteration number you are on.
0 commentaires
Plus de réponses (2)
Matt Fig
le 24 Sep 2012
A = magic(5)
cnt = 1;
for jj = A
disp(['Column #' num2str(cnt)])
disp(jj),
cnt = cnt+1;
end
4 commentaires
Walter Roberson
le 24 Sep 2012
Oh... yes, you are right, I had forgotten that it went by columns when matrices are used. blush
Shadow
le 2 Avr 2024
enumer = @(my_array) cell2mat(arrayfun(@(x,idx) struct("cargo",x,"idx",idx), my_array(:).', 1:numel(my_array(:).'),UniformOutput=false));
data = rand(5,4)
s=size(data);
for elem = enumer(data)
[row,col] = ind2sub(s,elem.idx);
disp("Element " + string(elem.cargo) + " with index " + string(elem.idx) + " at location " + string(row) + "," + string(col))
end
0 commentaires
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!