2017-10-12 5 views
-2
for m = 60:70;      %for m's values in the range of 60<m<70%; 
    n((m-59))=m;     %create an array of m's values and store the array under n 
    y1((m-59)) = (14*35)/(m*9.8); %for m's current value, calculate y1 
    y2((m-59)) = 1-exp((-14*7)/m); %for m's current value, calculate y2 

Dans ce morceau de code, quelle est la ligne ci-dessous?Quelqu'un peut-il m'expliquer ce code matlab?

n((m-59))=m; 

Quelqu'un peut-il m'expliquer cela?

+0

'n ((m-59)) = m' signifie que la valeur assign' m' à des valeurs de 'n' qui sont égales 'm-59', soit ajouter 60 à des valeurs égales à 'm-59'. Avec la boucle for 'pour m = 60: 70', il ajoute 60 à toutes les valeurs de' n' comprises entre 1 et 10. – kostek

+0

Non à "values ​​in' n' qui sont _equal_ 'm-59'", mais à l'entrée de n avec indice donné par m-59 –

Répondre

4

Cette paix de code calcule n, y1, y2 dans la boucle. Cette étrange indexation utilisée pour assigner des valeurs à n(1), n(2) et ainsi de suite: nous commençons la boucle de m=60, ainsi pour mettre le résultat dans n(1) au lieu de n(60) il utilise n(m-59).

vraiment pouvoir éviter d'utiliser des boucles:

n = [60:70]; 
y1 = (14*35)./(n.*9.8); 
y2 = 1-exp((-14*7)./n);