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')

 採用された回答

Birdman
Birdman 2018 年 2 月 9 日
編集済み: Birdman 2018 年 2 月 9 日

0 投票

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 件のコメント

Lukas Lehrman
Lukas Lehrman 2018 年 2 月 9 日
編集済み: Lukas Lehrman 2018 年 2 月 9 日
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 2018 年 2 月 9 日
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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

質問済み:

2018 年 2 月 9 日

コメント済み:

2018 年 2 月 9 日

Community Treasure Hunt

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

Start Hunting!

Translated by