累积功率的 Matlab 函数

Her*_* K. 1 matlab

MATLAB 中是否有一个函数可以为给定的标量生成以下矩阵r

1 r r^2 r^3 ... r^n 
0 1 r   r^2 ... r^(n-1)
0 0 1   r   ... r^(n-2)
...
0 0 0   0   ... 1
Run Code Online (Sandbox Code Playgroud)

其中每一行的行为有点像 CUMSUM 函数的幂模拟?

Lui*_*ndo 5

您可以使用隐式扩展逐元素幂直接计算每个术语,然后应用triu

n = 5; % size
r = 2; % base
result = triu(r.^max((1:n)-(1:n).',0));
Run Code Online (Sandbox Code Playgroud)

或者,也许更快一点,因为它不计算不需要的权力:

n = 5; % size
r = 2; % base
t = (1:n)-(1:n).';
u = find(t>=0);
t = t(u);
result = zeros(n);
result(u) = r.^t;
Run Code Online (Sandbox Code Playgroud)