Signal plot - Can't figure out error

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 commentaires

Walter Roberson
Walter Roberson le 2 Avr 2019
You define Eo2a as a function handle but you do not use it. You plot Eo but you do not define it.
STP
STP le 2 Avr 2019
Modifié(e) : STP le 2 Avr 2019
I did; just updated the code :)
I get the error -> Error in Uin : Dimensions of arrays being concatenated are not consistent.
Walter Roberson
Walter Roberson le 2 Avr 2019
Modifié(e) : Walter Roberson le 2 Avr 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
Walter Roberson le 2 Avr 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.
STP
STP le 2 Avr 2019
Modifié(e) : STP le 2 Avr 2019
I edited as per your comments - but still no output
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; Eo2b; Eo3];
%% this should be the figure below.
plot(t, real(Eo), 'DisplayName','Real')
plot(t, imag(Eo), 'DisplayName','Im')
legend
It is basically this that would give out the plot shown above-
Capture.JPG

Connectez-vous pour commenter.

Réponses (1)

KSSV
KSSV le 2 Avr 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 commentaires

STP
STP le 2 Avr 2019
Modifié(e) : STP le 2 Avr 2019
Hi, KSSV; thanks for your input - I tried this way too- but I still don't get this output (Eo)
KSSV
KSSV le 2 Avr 2019
I have only solved the error.....didn't work on the real problem.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Labels and Annotations dans Centre d'aide et File Exchange

Tags

Question posée :

STP
le 2 Avr 2019

Commenté :

le 2 Avr 2019

Community Treasure Hunt

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

Start Hunting!

Translated by