Deleting some parts of a figure

4 views (last 30 days)
Ali Esmaeilpour
Ali Esmaeilpour on 1 Oct 2019
Answered: Steven Lord on 1 Oct 2019
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 Comments
Sebastian Körner
Sebastian Körner on 1 Oct 2019
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 on 1 Oct 2019
t is 1*201 and y is 201*1 so we can't simply have t(5:9) can we???

Sign in to comment.

Answers (1)

Steven Lord
Steven Lord on 1 Oct 2019
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".

Products


Release

R2018b

Community Treasure Hunt

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

Start Hunting!