Column of matrices for arbitrary N.

3 views (last 30 days)
Mike Leijten
Mike Leijten on 6 Feb 2020
Answered: Hank on 6 Feb 2020
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.

Accepted Answer

Hank
Hank on 6 Feb 2020
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.

More Answers (0)

Categories

Find more on Particle & Nuclear Physics in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!