如何在Matlab中对for循环中的值求和?

Ben*_*sen 0 matlab sum

我想在for循环运行时求和,然后打印出所有先前酸值的总值.我现在的问题是它目前只打印单个值而不是酸性的总和值.我怎么总结.

这是打印到命令窗口的内容

ans =

5.9676
Run Code Online (Sandbox Code Playgroud)

ans =

2.1676
Run Code Online (Sandbox Code Playgroud)

这是我的代码

pki = [7.7,3.9];

t= 2;


n=55;

for i = 1:t;

    acidic = log10(1/((n-1)*(10^-pki(i))));

    sum(acidic)

end 
Run Code Online (Sandbox Code Playgroud)

Don*_*nie 6

sum()用于求和矢量中的所有值,或沿矩阵中的轴求和.您不需要实现代码的方式.你可以做到

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
Run Code Online (Sandbox Code Playgroud)

然而,这是相当无效的matlab.我建议做的只是一次计算所有值,然后使用sum.你并不需要for,如果你做这样的语句:

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

sum(acidic)
Run Code Online (Sandbox Code Playgroud)

一次性计算哪个.如果你并不总是要使用所有的pki,你可以下标,就像这样:

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

sum(acidic)
Run Code Online (Sandbox Code Playgroud)