Column of matrices for arbitrary N.

1 次查看(过去 30 天)
Hi,
I need to construct the vector of A matrix powers (called Phi) and the matrix of B AB (called Gamma) etc.
I'm not good at programming and I have been struggling with it for a while now.
Capture.PNG
The script i have made and the output is shown below:
A matrix of zeros is created and then correctly filled with the corresponding values from the variable "test". But I actually want to make the column [A ; A^2 ; ..... ; A^N] for an arbitrary N.
But as soon as I program A^N for N = 1:3 only the last output is shown.
Any help is greatly appreciated.

采纳的回答

Hank
Hank 2020-2-6
Hi Mike.
The way you're building phi is creating a matrix, not a vector, since zeros(m,n) creates an mxn matrix.
I think this is what you're trying to do
function [Gamma,phi] = GAMMA(A,B,N)
% A and B are a scalar
phi = A.^(1:N)'; % raises A to powers 1,2,3,...N, creates a column vector
Gamma = diag( B * ones(N,1) ); % create gamma, a diagonal matrix of B
for i=1:N
for j=1:i-1
Gamma(i,j) = B * phi(i-j); % element i-j is A^(i-j)
end
end
end
I tested this with [gam,phi] = GAMMA(2,1,5);
Seems to work alright.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by