3 D plot of transfer function magnitude with complex axis

I am trying to plot the following transfer function's magnitude on a third(z) axis, however it contains a pole and the graph I am getting is obviously incorrect: s+1/s+2. Also i am getting the following warning, matrix is close to singular . My code is:
>> x=linspace(-10,10);
>> y=linspace(-10,10);
>> [X,Y]=meshgrid(x,y);
>> Z=abs((X+i*Y+1)/(X+i*Y+2));
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate.
RCOND = 2.503334e-20.
>> surf(X,Y,Z)
>> rotate 3d on;

 Réponse acceptée

You forgot to do element-wise division (using (./) instead of (/)).
This works:
x=linspace(-10,10);
y=linspace(-10,10);
[X,Y]=meshgrid(x,y);
Z=abs((X+i*Y+1)./(X+i*Y+2));
figure(1)
surfc(X, Y, Z)
grid on
xlabel('Real')
ylabel('Imaginary')
view([30 30])
I rotated the plot (using the view function) so you can see the zero as well as the pole.

2 commentaires

Thanks! I was able to get the same result yesterday using sysms and fsurf. Now i can use your method for all other plots too.
My pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by