# MATLAB: Creating a figure that is a segment of another

MATLABslicingvector

i have a script that gives my figure(1) that graphs a cos wave over 5 sec then i need to section out the first second and have it display in figure(2). when i run my script i get the first figure and the second only displays the x,y cooridinates.
i think i have a problem in the way i sectioned the original vector.
my script looks like this:
``clear;clc;close all;% create vector of time valuest = 0.0 : 0.01 : 5.0;% evaluate function at time pointsf = 53*cos(104*pi*t).*exp(-1.35*t);% plot t vs f(t)figure(1) plot(t,f);xlabel('t(sec)');ylabel('f(t)');%reindex t to exclude the last four secondst = 0.0 : 0.01 : 5;%plot t vs f(t)figure(2)plot(t,f(t));xlabel('t(sec)');ylabel('f(t)');``

• I see a few problems:
Your f variable is still based on the original vector of t. You need to run:
``f = 53*cos(104*pi*t).*exp(-1.35*t);``
again, after you set your new t
Also, you have set t to be the same vector (ie, t = 0.0 : 0.01 : 5; ). I don't think you wanted this.
Finally, in the second figure you are calling:
``plot(t,f(t));``
but t is still a vector of times, not a vector of indices.
Perhaps you meant the following:
``% First figuret = 0.0 : 0.01 : 5.0;f = 53*cos(104*pi*t).*exp(-1.35*t);figureplot(t,f);xlabel('t(sec)');ylabel('f(t)');% Second figure, using only first 1/5th of t, fidxs = 1:round(length(t)/5);figureplot(t(idxs),f(idxs));xlabel('t(sec)');ylabel('f(t)');``
By the way, have you tried instead just:
``set(gca,'xlim',[0 1])``
You can run this after the first plot, and it will "zoom in" on only the first portion from 0 to 1 along the x axis. The rest will be excluded from view.