我想在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)
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)