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

Calculating x, x.^2,...x.^K (vectorization of powers,geometric series) in MATLAB

x为向量。我想计算 xx.^2、...、x.^K。是否有一个功能可以同时执行所有这些操作? (目前我只使用 for 循环)

您可以使用函数bsxfun来计算展开:

  k = 3;
  x = transpose(1:10);
  P = bsxfun(@power, x,1:k);

你可以使用 meshgrid。

k = 1:10;
[X, K] = meshgrid(x, k);
Y = X.^K; %or Y = power(X,K);

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

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