# How to make a plot from for loop where the results are a 3x1 matrix?

3 views (last 30 days)
Nikolai on 18 Sep 2020
Answered: Star Strider on 18 Sep 2020
s=300
r=25
k=30
kukat=[s;r;k]
A=[0.23 0 233;0.74 0.52 0;0 0.35 0.46]
a=15
hold on
for x=1:a
maarat=A^x*kukat
end
So here is my for loop and my goal would be to create a plot where there would be three lines. One line would show the results of the first row of the 3x1 matrix. I've tried to look it up but my lack of english skills makes it hard.

Star Strider on 18 Sep 2020
Try this slight variation on your code:
s=300;
r=25;
k=30;
kukat=[s;r;k];
A=[0.23 0 233;0.74 0.52 0;0 0.35 0.46];
a=15;
x=1:a;
for k = 1:numel(x)
maarat(:,k) = A^x(k)*kukat;
end
figure
semilogy(x, maarat)
grid
xlabel('x')
ylabel('maarat')
If you are simulating a control system, there are easier ways. If you want to do it yourself, use the expm function to create the matrix exponential.

### Community Treasure Hunt

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

Start Hunting!