Broken code on phasor representation

1 view (last 30 days)
Hi all,
I am working with phasor responses in circuits, and in my textbook (Analysis and Design of Linear Circuits: 8th Edition by Thomas, Rosa, and Toussaint), I am given this code that takese two phasor values and displays it in its polar form:
% phasors.m %
% Source: TRT p.386
% Create the phasor values
V1 = 10*exp(-j*45*pi/180)
V2 = 5*exp(j*30*pi/180)
% Form the sum
V = V1 + V2
% Computes the polar form
MagV = abs(V);
PhaseV = angle(V);
PhaseVDeg = 180*PhaseV/pi;
% Display results
disp(['V=',num2str(MagV,'%3.4g'),...
exp(',num2str(PhaseVDeg,'%3.4g'),'j)'])
However, it doesn't run, and I'm not sure how to fix it. It should display as such:
V1 =
7.0711 - 7.0711i
V2 =
4.3301 + 2.5000i
V =
11.4012 - 4.5711i
V = 12.28 exp(-21.85j)
But the problem is that, as seen above, the strange placement of the apostrophes messes up the last line. The furthest I managed to get was having it display the real '12.28' part.
Otherwise, the error I get is, as expected (commented):
% Undefined function 'exp' for input arguments of type 'char'.
% Error in phasor_to_polar_BROKEN (line 13)
% disp(['V=',num2str(MagV,'%3.4g')], [exp(',num2str(PhaseVDeg,''%3.4g'),'j)'])
How do I fix this code to run as it should; displaying the Real and Imaginary properly?

Accepted Answer

Star Strider
Star Strider on 26 Jan 2020
There is a missing single quote
disp(['V=',num2str(MagV,'%3.4g'),...
exp(',num2str(PhaseVDeg,'%3.4g'),'j)'])
↑ ← HERE
The correct line should be:
disp(['V=',num2str(MagV,'%3.4g'),...
'exp(',num2str(PhaseVDeg,'%3.4g'),'j)'])
It then produces:
V=12.28exp(-21.85j)
as intended.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!