Comment faites-vous la somme des valeurs à l'intérieur d'une boucle for dans Matlab?
Je veux somme acide que la boucle for s'exécute et ensuite, imprimez la valeur totale de tous les précédents acide valeurs. Mon problème est actuellement est actuellement, il est seulement l'impression des valeurs individuelles pas une valeur additionnée d'acide. Comment puis-je somme.
c'est ce qui est de l'impression de la fenêtre de commande
ans =
5.9676
ans =
2.1676
voici mon code
pki = [7.7,3.9];
t= 2;
n=55;
for i = 1:t;
acidic = log10(1/((n-1)*(10^-pki(i))));
sum(acidic)
end
- Comme vous l'avez écrit ceci, votre pour-boucle s'exécute deux fois seulement. Est-ce que vous souhaitez?
- oui. Je commence avec un petit nombre de fois. J'ai l'intention de l'importation d'un fichier excel et de l'exécuter n fois.
Vous devez vous connecter pour publier un commentaire.
MODIFIER - Comme Donnie points, vous n'avez pas besoin de la
t
variable.Vous n'avez pas de point-virgule sur votre ligne
sum(acidic)
, donc MATLAB imprime le résultat. Mais il semble que vous avez d'autres problèmes - acide est un scalaire, alors la valeur est écrasés à chaque fois. Probablement vous voulez faire quelque chose comme:Note le
./
,.*
, et.^
opérateurs. Ces dites MATLAB à faire élément par élément des opérations sur les vecteurs. La dernièredisp
ligne indique MATLAB pour imprimer la valeur de sortie.sum()
est pour l'addition de toutes les valeurs dans un vecteur, ou le long d'un axe dans une matrice. Vous n'avez pas besoin de la façon dont vous avez votre code de mise en œuvre. Vous pourriez faireCependant, ce qui est assez inefficent matlab. Ce que je recommande de faire est juste le calcul de toutes les valeurs à la fois, et ensuite utiliser
sum
. Vous n'avez pas besoin de lafor
déclaration si vous faites de cette façon:Qui fait le calcul en une seule fois. Si vous n'avez pas toujours d'utiliser la totalité de l'icp, vous pourriez indice en elle, comme suit: