我在绘制传输函数的3D图时遇到问题。在matlab中我试过这个:
[T,w] = meshgrid(1:1:32,1:1:100);
sys2=20*log((1-w.*(T./2)./w.*T).*(((2.56.*(w.^2)+1.6.*w+1)./(0.0008.*(w.^6)+0.0124.* (w.^5)+0.173.*(w.^4)+(w.^3)))./1+(((2.56.*(w.^2)+1.6.*w+1)./(0.0008.*(w.^6)+0.0124.*(w.^5)+0.173.*(w.^4)+(w.^3))))));
surf(T,w,sys2);
但是我收到了这个错误:
??? Error using ==> surf at 78
X, Y, Z, and C cannot be complex.
请问有什么不对? 或者有谁能告诉我如何在Mathcad中绘制这个? 谢谢。
答案 0 :(得分:2)
您无法绘制复数与两个独立变量 - 您需要四个轴。
你能做的是:
使用两个单独的图形(或同一图中的两个子图)来绘制实部和虚部。在Matlab中,
surf(T,w,real(sys2));
figure %// create new figure for the other graph
surf(T,w,imag(sys2));
或者,绘制绝对值和阶段:
surf(T,w,abs(sys2));
figure %// create new figure for the other graph
surf(T,w,angle(sys2));
更奇特的可能性是在同一图表中使用z
轴表示绝对值,使用颜色表示相位:
surf(T,w,abs(sys2),angle(sys2)); %// fourth argument of surf specifies colour