Signal plot - Can't figure out error
Show older comments
t1= [0 5];
t2a = [5 6];
t2b = [6 7];
t3 = [7 10];
Eo1 = exp(1i*pi);
phi = 2*pi/3; % any angle as its the slope
k = -phi/(t2a(1)-t1(1));
Eo2a = @(t)exp(1i*(phi + k*(t-t1(1))));
Eo2b = exp(1i*0);
Eo3 = 0;
t= [t1; t2a; t2b; t3];
Eo = [Eo1; Eo2a(t2a); Eo2b; Eo3];
%% this should be the figure below.
plot(t, real(Eo), 'DisplayName','Real')
plot(t, imag(Eo), 'DisplayName','Im')
legend
What am I doing wrong? -- as I don't get the below plot Eo as outcome

5 Comments
Walter Roberson
on 2 Apr 2019
You define Eo2a as a function handle but you do not use it. You plot Eo but you do not define it.
Walter Roberson
on 2 Apr 2019
Edited: Walter Roberson
on 2 Apr 2019
Are any of t1, t2a, t2b, t3 non-scalar ?
I suspect that phi should be in radians; it looks like you are using degrees.
Walter Roberson
on 2 Apr 2019
You define k in terms of t2a(1) and t1(1) . That implies you think t1 and t2a are vectors.
You define Eo1 as a scalar constant.
You define Eo2a as a function handle, and pass the vector t2a to it, getting back a vector of results. It might be a row vector rather than a column vector. When you try to use [A;B] between a scalar and a row vector, that is not going to work.
Answers (1)
KSSV
on 2 Apr 2019
Eo2a is a function handle...you have to input t and get output. You should run something like below. REthink on your code.
t1= [0 5];
t2a = [5 6];
t2b = [6 7];
t3 = [7 10];
Eo1 = exp(1i*pi);
phi = 2*pi/3; % any angle as its the slope
k = -phi/(t2a(1)-t1(1));
Eo2a = @(t)exp(1i*(phi + k*(t-t1(1))));
Eo2b = exp(1i*2*pi);
Eo3 = 0;
t= [t1; t2a; t2b; t3];
Eo = [Eo1 Eo2a(t1) Eo2b ];
%% this should be the figure below.
plot(t, real(Eo), 'DisplayName','Real')
plot(t, imag(Eo), 'DisplayName','Im')
legend
2 Comments
KSSV
on 2 Apr 2019
I have only solved the error.....didn't work on the real problem.
Categories
Find more on Labels and Annotations 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!
