How do I plot complex numbers or moduli?

8 Ansichten (letzte 30 Tage)
Sean
Sean am 25 Jun. 2017
Kommentiert: KSSV am 25 Jun. 2017
Dear Readers,
I have this code. However, there might be a mixture of imaginary and real eigenvalues. I want to plot everything or, if alle eigenvalues are complex, only the moduli. How do I go about this?
eigVals = zeros(2,numel(p));
figure
for k = 1:numel(p)
A = J(c(k), p(k), R(k), c2(k), p2(k));
eigVals(:,k) = eig(A);
hold on;
plot(p(k), eigVals(:,k)', '*');
end

Antworten (1)

KSSV
KSSV am 25 Jun. 2017
You can check whether a value is real or complex using isreal. To get moduli or magnitude of complex number you can use abs. Read about isreal, abs. https://in.mathworks.com/help/matlab/complex-numbers.html
  2 Kommentare
Sean
Sean am 25 Jun. 2017
Great. I adapted the code, however plotting gives the error 'Data must be a single matrix Y or a list of pairs X,Y.'
eigVals = zeros(2,numel(p));
real_ev = [ ];
imag_ev = [ ];
figure
for k = 1:numel(p)
A = J(c(k), p(k), R(k), c2(k), p2(k));
eigVals(:,k) = eig(A);
real_ev(:,k) = real(eigVals(:,k));
imag_ev(:,k) = imag(eigVals(:,k));
hold on;
plot(p(k), real_ev(:,k)', 'g*', imag_ev(:,k)', 'b*');
end
Thanks in advance
KSSV
KSSV am 25 Jun. 2017
Size of p(k) and real_ev(:,k) should be same to plot. Also the plot line should be plot(p(k), real_ev(:,k)', 'g*', p(k),imag_ev(:,k)', 'b*');

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by