Question

Je souhaite additionner l'acide lors de l'exécution de la boucle for, puis afficher la valeur totale de toutes les valeurs précédentes. Mon problème est que c’est actuellement qu’il n’imprime que les valeurs individuelles et non une seule valeur d’acide. Comment puis-je résumer.

c'est ce qui est imprimé dans 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 
Était-ce utile?

La solution

MODIFIER : sous la forme Donnie souligne que vous n'avez pas besoin de la variable t .

Vous n'avez pas de point-virgule sur votre ligne sum (acide) , donc MATLAB affiche le résultat. Mais il semble que vous ayez d'autres problèmes - l'acide est un scalaire, donc la valeur est écrasée à chaque fois. Vous voulez probablement faire quelque chose comme:

pki = [7.7,3.9];
n = 55;
acidic = log10(1./((n-1).*(10.^-pki)));

disp(sum(acidic))

Notez les opérateurs ./ , . * et . ^ . Celles-ci indiquent à MATLAB d'effectuer des opérations élément par élément sur les vecteurs. La dernière ligne disp indique à MATLAB d'imprimer la valeur de sortie.

Autres conseils

sum () permet de faire la somme de toutes les valeurs d'un vecteur ou le long d'un axe d'une matrice. Vous n'en avez pas besoin avec la manière dont vous avez implémenté votre code. Vous pouvez juste faire

pki = [7.7,3.9];
t= 2;
n=55;
acidic = 0;
for i = 1:t;
  acidic = acidic + log10(1/((n-1)*(10^-pki(i))));
end;

acidic

Cependant, c'est assez inefficent matlab. Ce que je recommanderais, c’est de calculer toutes les valeurs en même temps, puis d’utiliser sum . Vous n'avez pas besoin de l'instruction pour si vous le faites de cette façon:

pki = [7.7,3.9];
t= 2;
n=55;
acidic = log10(1 ./ ((n-1) .* (10 .^ -pki)));

sum(acidic)

Quel est le calcul en une fois? Si vous n'utilisiez pas toujours pki dans son intégralité, vous pouvez vous y inscrire, comme suit:

pki = [7.7,3.9];
t= 2;
n=55;
acidic = log10(1 ./ ((n-1) .* (10 .^ -pki(1:t))));

sum(acidic)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top