How to use previous answer in new calculation n times
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi all
I am pretty new to Matlab and have been struggling with loops and arrays.
My issue is I am attempting to calculate yn where x in the original calculation becomes y1 in caclulation for y2 and so on.
ie:
x = [1;2] %orginal value
it then is multiplied by A= [0.3 -0.2; -0.6 -0.8]
and B=[-14;2] is added to it to become y1, then calculation is repeated and rather than using x, y1 used to calculate y2 and so on.
Any help would be greatly appreciated.
clear; clc; close all;
A=[0.3 -0.2; -0.6 0.8];
B=[-14;2];
x=[1;2];
y1=A*x+B
y2=A*y1+B
y3=A*y2+B
y4=A*y3+B
y5=A*y4+B
y6=A*y5+B
y7=A*y6+B
y8=A*y7+B
y9=A*y8+B
y10=A*y9+B
0 Commenti
Risposta accettata
Star Strider
il 10 Giu 2024
Perhaps something like this —
A=[0.3 -0.2; -0.6 0.8];
B=[-14;2];
x=[1;2];
y = x;
for k = 1:10
y = A*y+B;
ym(:,k) = y; % Y-Matrix: 'ym'
end
ym
figure
plot((1:10), ym)
grid
legend('y(1)','y(2)', 'Location','best')
.
4 Commenti
David Goodmanson
il 11 Giu 2024
Modificato: David Goodmanson
il 12 Giu 2024
Hi Chris,
A key feature of the answer is that there are not nine different variables y1,y2, ... using all those variables is called dynamic variable naming and it is highly discouraged. Instead you have one matrix variable. Any of the previous variables, for example y4, can easily be accessed since it is ym(:,4). (The use of a colon here means every row in column 4).
Più risposte (1)
Paul
il 12 Giu 2024
A=[0.3 -0.2; -0.6 0.8];
B=[-14;2];
x=[1;2];
sys = ss(A,B,eye(2),0,-1);
y = lsim(sys,ones(11,1),0:10,x); % y0 = x
%y = step(sys,10) + initial(sys,x,10); % y0 = x; alternative method
figure
plot(0:10,y)
0 Commenti
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!