MATLAB Answers

Vectors must be the same length.

3 views (last 30 days)
mohammad heydari
mohammad heydari on 8 Nov 2019
Edited: mohammad heydari on 9 Nov 2019
Hi there.I want to draw the following formula, but I get the following error
error: Vectors must be the same length.
why?
y(t) is a 41765*4 matrix and A=y(:,3).
for example y(:,3) having values as follows:
8.26665517322484e-08 - 3.08466436225798e-07i
2.94822110031966e-08 - 1.28642078260667e-07i
4.87811541654193e-08 + 1.34459400745398e-08i
5.20060276867161e-08 - 1.37015907821914e-07i
7.13757345297127e-08 - 2.06148057224859e-07i
8.21435079828878e-08 - 1.73652495134914e-07i
...
And my code in Matlab
tspan = [0 2e-9]; % time interval, up to 2 ns
y0 = [0+eps,0+eps,0+eps,0+eps];
[t,y] = ode45(@rate_eq_program_1,tspan,y0);
size(t);
t=t*1e9;
y = abs(y); % Change As Necessary To Get The Desired Resullt
delta_omega_laser=diff(atan(real(y(:,3))./imag(y(:,3))));
figure(1)
g = plot(t,delta_omega_laser ); % divided to normalize
xlabel('time [ns]','FontSize',14); % size of x label
ylabel('Arbitrary units','FontSize',14); % size of y label
set(gca,'FontSize',14); % size of tick marks on both axis
legend('\delta_omega', 'Location','SE') % legend inside the plot
Thanks in advance for helping!!

  2 Comments

darova
darova on 8 Nov 2019
diff is just difference between values:
dy(1) = y(2) - y(1);
dy(2) = y(3) - y(2);
%...
If you have 5 elements in y arrays. How many would you have in dy?
mohammad heydari
mohammad heydari on 8 Nov 2019
I mean derivation and implementation of formulas, not differences.y are calculated in ode and i want to calculate formulas.

Sign in to comment.

Accepted Answer

M
M on 8 Nov 2019
What lines causes the error ? Following one ?
g = plot(t,delta_omega_laser );
t and delta_omega_laser must have the same length.

  14 Comments

darova
darova on 9 Nov 2019
Impossible. Can you attach the data?
darova
darova on 9 Nov 2019
Try:
ylim([-1 1]*2e-7)
I don't know why you don't get the graph you want. I think the problem is deeper than it seems
Results make more sense if plot like this:
plot(real(y(:,3)),imag(y(:,3)),'.-b')
mohammad heydari
mohammad heydari on 9 Nov 2019
thanks alot for your help.
Trying to check again.

Sign in to comment.

More Answers (0)

Sign in to answer this question.