在MATLAB中计算x,x.^ 2,... x.^ K(幂的矢量化,几何级数)

use*_*828 2 matlab matrix

让我们x成为一个载体.我想计算x,x.^2,..., x.^K.是否有一个功能可以同时完成所有这些操作?(目前我只使用一个for循环)

And*_*ein 9

您可以使用该函数bsxfun计算扩展:

  k = 3;
  x = transpose(1:10);
  P = bsxfun(@power, x,1:k);
Run Code Online (Sandbox Code Playgroud)


Lui*_*ndo 5

就所需操作而言,以下内容可能更有效,因为在计算每个x ^ n时,它通过重用先前计算的x ^( n -1)来应用乘法而不是幂:

x = 1:10; %// row vector
K = 5; %// maximum power
result = cumprod(repmat(x, K, 1), 1);
Run Code Online (Sandbox Code Playgroud)