How to plot loop iteration in same figure
250 views (last 30 days)
Show older comments
Hello all, I need to plot my gama for different instance loop iteration. This means I should save data for all loop and plot all in the same figure. Please see the following code. clear; gama=[1.20, 2.90 ,3.1] for gama ? end How to compute ?
7 Comments
Kevin Chng
on 25 Oct 2018
clear;
p0=6
T1=5;
T0=T1/2/sqrt(log(2));
h=1;
gama=[1.20,2.90,3.1,4.4,5.3];
for i=1:1:length(gama)
beta=0;
T=0.3;% total pulse with (TFWHM)
N=285;% Soliton order
n=-N/2:(N/2-1);
t=n.*T;% order
uszgz0=exp(-t.^2./(2*T0^2));
usz=exp(-t.^2./(2*T0^2));% Dispersion
A0=sqrt(p0)*uszgz0;% Amplitude
dfait=1/T0*h*gama(i)*p0*(t/T0).*exp(-(t/T0).^2);
%for k=1:10
u0=usz;
usz=abs(u0).*exp(-h*j*gama(i)*p0*(abs(u0).^2));%first order with Chirp parameter
fusz=fftshift(fft(usz));% Spectrum
end
f=(0:(N-1))./(N*T)*1e3-1/(2*T)*1e3;
Az=usz*sqrt(p0);%
figure(1)
hold on
plot(t,A0.^2,'b-o',t,A0.^2,'r.-','Linewidth',6)
title('Pulse Evolution');
xlabel('Time (ps) ');
ylabel('Power(W)');
set(gca,'FontSize',24);
legend ('Matlab IN','After SPM');
legend boxon
grid on;
xlim([-10,10];
hold off
figure(2)
hold on
plot(f,fftshift((T*abs(fft(uszgz0))).^2)/N,'g','Linewidth',6)
hold on
plot(f,(T*(abs(fusz))).^2/N,'b','Linewidth',4)
title('Pulse Evolution');
xlabel(' Frequency (GHz)');
ylabel('Power (W)');
set(gca,'FontSize',24);
legend ('Matlab IN','After SPM');
legend boxon
grid on;
xlim([-900,900])
grid on
hold off
end
%end
Accepted Answer
KSSV
on 25 Oct 2018
Check the below pseudo code, which plots the same function for different values and the function is plotted in a loop. Understand the below code and apply it to your case.
x = linspace(0,2*pi) ;
A = 1:10 ;
figure
hold on
for i = 1:length(A)
y = A(i)*sin(x) ;
plot(x,y)
end
More Answers (0)
See Also
Categories
Find more on 2-D and 3-D Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!