题
我想总结如酸性循环的运行,然后打印出来的总价值的所有以前的酸性的价值观。我的问题是现在是它目前是刚刚印刷的个人价值不是一个总结的价值的酸性。我怎么总和。
这是什么是打印到命令窗口
答=
5.9676
答=
2.1676
这里是我的代码
pki = [7.7,3.9];
t= 2;
n=55;
for i = 1:t;
acidic = log10(1/((n-1)*(10^-pki(i))));
sum(acidic)
end
解决方案
编辑 -为 唐尼 所指出的,你不需要 t
变量。
你没有一分号线上 sum(acidic)
, ,因此MATLAB打印的结果。但是它看起来像你有一些其他的问题-酸性为标量,因此值是得到复盖每个时间。可能你想要做的事,如:
pki = [7.7,3.9];
n = 55;
acidic = log10(1./((n-1).*(10.^-pki)));
disp(sum(acidic))
注意到 ./
, .*
, , .^
经营者。这些告诉MATLAB做的元素的操作过矢量。最后一个 disp
线告诉MATLAB打印输出价值。
其他提示
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
然而,这相当inefficent MATLAB。我建议做只是计算所有的值一次,然后用sum
。你不需要for
声明,如果你做这种方式:
pki = [7.7,3.9];
t= 2;
n=55;
acidic = log10(1 ./ ((n-1) .* (10 .^ -pki)));
sum(acidic)
哪些不计算在一气呵成。如果你并不总是使用所有PKI的,你可以下标进去,就像这样:
pki = [7.7,3.9];
t= 2;
n=55;
acidic = log10(1 ./ ((n-1) .* (10 .^ -pki(1:t))));
sum(acidic)
不隶属于 StackOverflow