Unable to plot matrix multiples

2 views (last 30 days)
Lukas Lehrman
Lukas Lehrman on 9 Feb 2018
Commented: Birdman on 9 Feb 2018
So I'm trying to plot the sum of a matrix at 25 different values using the code below, but matlab gives me the error " Error using ^ One argument must be a square matrix and the other must be a scalar. Use POWER (.^) for elementwise power. ", Even though x technically is a scalar (right?). Note that i am NOT trying to simply multiply the matrix by a constant x. For x=2 I want to compute A*A (matrix multiplication).
clear all
A = [1.9 0.025;0.1 1.225];
v = [1;0];
for i = 1:25 answer = sum((A^i)*v); end
answer
x = (1:25);
y = sum((A^x)*v);
plot (x,y)
xlabel('# of growth periods')
ylabel('Total # of bacteria')

Accepted Answer

Birdman
Birdman on 9 Feb 2018
Edited: Birdman on 9 Feb 2018
A = [1.9 0.025;0.1 1.225];
v = [1;0];
for i = 1:25
answer(i) = sum((A^i)*v);
end
x = 1:25;
plot (x,answer)
xlabel('# of growth periods')
ylabel('Total # of bacteria')
  2 Comments
Lukas Lehrman
Lukas Lehrman on 9 Feb 2018
Edited: Lukas Lehrman on 9 Feb 2018
Thank you for the answer! I've since ran into yet another problem. Now I'm trying to calculate a the value of an unknown that would generate the maximum value in a matrix, but i get the error "Subscripted assignment dimension mismatch".
pvalues = [0:0.01:1];
v = [1;0];
for i=1:length(pvalues)
p=pvalues(i)
A = [2-p 0.25*p;p (1.25-(0.25*p))];
answer(i) = (A^25)*v;
end
max(answer)
I thought i could work around it, but it seems that it hasn't worked.
Birdman
Birdman on 9 Feb 2018
pvalues = 0:0.01:1;
v = [1;0];
for i=1:length(pvalues)
A = [2-pvalues(i) 0.25*pvalues(i);pvalues(i) (1.25-(0.25*pvalues(i)))];
res = (A^25)*v;
val(i)=max(res);
end

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!