【问题标题】:How to sum over values in a vector如何对向量中的值求和
【发布时间】:2014-02-10 02:10:17
【问题描述】:

假设我有 x = [1,2,5] 和 f(x) = e^x 如何对 x 中的值求和 f(x)?

【问题讨论】:

  • 你的意思是:sum(exp(x))?

标签: matlab vector sum


【解决方案1】:

你只需要使用sum():

x = [1,2,5];   
y = exp(x);
sum(y)

这会给你:

ans =

158.5205

【讨论】:

  • f(x) = exp(x); 似乎是 Matlab 的一个奇怪的语法选择。如果x 包含非整数,它肯定会失败吗?
  • 只是对一般实践感到好奇,我必须尽量减少 fatsumzzzz
  • @ColinTBowers 已更新。谢谢。
【解决方案2】:

如果您喜欢微优化;当元素数量较少时,使用 BLAS 比矢量化和稍快:

summation = ones(1,numel(x)) * exp(x(:));

或者,如果你是肯定的x是一个行向量,

summation = exp(x) * ones(size(x)).';

【讨论】:

    猜你喜欢
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    相关资源
    最近更新 更多