Ce ne pour i = 1: ... dire dans Matlab?
noter que le code ci-dessous est obtenu à partir de Matlab la documentation, sauf pour la partie inférieure.
function B = nway(A,n)
% Compute average of every N elements of A and put them in B.
if ((mod(numel(A),n) == 0) && (n>=1 && n<=numel(A)))
B = ones(1,numel(A)/n);
k = 1;
for i = 1 : numel(A)/n
B(i) = mean(A(k + (0:n-1)));
k = k + n;
end
Que fait la boucle de code signifie, surtout la ligne suivante?
for i = 1 : numel(A)/n
et comment le i
travail en l'insérant dans B(i)
?
- Je pense que vous êtes absent le point de Matlab si vous n'avez pas essayé d'entrer des expressions telles que
1:5
,1:sqrt(81)
,10:-1:2
,12:numel(A)
etc à la ligne de commande et a commencé à découvrir la réponse à votre propre question. Une fois que vous avez réalisé cela, de commencer à expérimenter avecfor i = 1:12
et des expressions plus complexes.
Vous devez vous connecter pour publier un commentaire.
D'une boucle for dans Matlab est construit comme
La
iterationVariable
va prendre la valeur de la première colonne delistOfValues
dans la première itération de la boucle, la valeur de la deuxième colonne, etc. Vous pouvez ensuite utiliseriterationValue
dans vos calculs.va donc définir la valeur de
i
à1,2,3...
jusqu'à la valeur de"number of elements of A divided by n"
.est une opération d'indexation, qui retourne le
i
ème élément du tableauB
.Comme @HighPerformanceMark suggère, je vous recommande d'essayer ces expressions à la ligne de commande, ou de travailler à travers la section "démarrage" de l'excellente documentation Matlab.