Deleting some parts of a figure

4 次查看(过去 30 天)
Ali Esmaeilpour
Ali Esmaeilpour 2019-10-1
greeting guys! I got a code which result is a figure of output y with respect to t (time). I wanted to keep some part of this figure for example from time 5 till 9 and delete other parts. I wanted to know how to do that.
my code is as follows:
clc;
clear;
close all;
%% Initialization
T0=0 ;
Tf=20 ;
Ts=0.1 ;
t=T0:Ts:Tf ;
system=tf([1 1],[1 1 2]); % system=(s+1)/(s^2+s+2)
system_dis=c2d(system,Ts) ;
system_dis_ss=ss(system_dis) ;
Am=system_dis_ss.a;
Bm=system_dis_ss.b;
Cm=system_dis_ss.c;
n=size(Am,1); % Number of state variables
Om=zeros(1,n);
A=[Am,Om';Cm*Am,1];
B=[Bm ;Cm*Bm];
C=[Om 1];
p=10; % Prediction horizon
m=5; % Control horizon
Q=1;
R=1;
F=zeros(p,n+1);
for i=1:p
F(i,:)=C*A^i;
end
PHI=zeros(p,m);
for i=1:p
for j=1:i
PHI(i,j)=C*A^(i-j)*B;
end
end
PHI=PHI(:,1:m);
%% Main Loop
Nt=numel(t);
%W=ones(Nt,1); % Reference signal
W=[ones(floor(Nt/4),1);2*ones(floor(Nt/4),1);-ones(floor(Nt/4),1);zeros(floor(Nt/4+1),1)];
y=zeros(Nt,1);
du=zeros(Nt,1);
x=zeros(n+1,Nt); % (System state)+integral ===> n+1
Fval=zeros(Nt,1);
for i=1:Nt-1
FreeResponse=F*x(:,i);
dU=(PHI'*Q*PHI+R)\(PHI'*Q*(W(i)-FreeResponse))
du(i)=dU(1); % Receding horizon
x(:,i+1)=A*x(:,i)+B*du(i); % State variable update
y(i+1)=C*x(:,i+1); % Output update
end
%% Plot result
figure(1)
plot(t,y,'linewidth',2)
  7 个评论
Sebastian Körner
Sebastian Körner 2019-10-1
plot(t(5:9),y(5:9),'linewidth',2) %??
with that you dont change "y" at all, you just dont plot all of it
Ali Esmaeilpour
Ali Esmaeilpour 2019-10-1
t is 1*201 and y is 201*1 so we can't simply have t(5:9) can we???

请先登录,再进行评论。

回答(1 个)

Steven Lord
Steven Lord 2019-10-1
timesInRange = (5 <= t) & (t <= 9);
plot(t(timesInRange), y(timesInRange))
Depending which of the endpoints you want to keep, you may need to use < instead of <= in one or both conditions.
For more information about how this works, see this documentation page and/or some of the blog posts that discuss "logical indexing".

类别

Help CenterFile Exchange 中查找有关 Annotations 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by