如何绘制极坐标图?
How to plot a polar plot?
问题
给定 N=1,天线的辐射图为 y(theta)=sin(N4pitheta)/(N4pitheta) 假设该公式在 的范围内有效。生成辐射图的极坐标图。为您的图表使用 400 点。
这是我的代码,我不断收到 "THETA and RHO must be the same size." 这是什么意思,我该如何修复我的 cod?谢谢
function [graph,x,y]=question3(N)
x=linspace(-pi,pi,400);
y=(sin(N*4*pi*x)/(N*4*pi*x));
graph='polar(x,y)';
end
您的问题是您执行的是矩阵除法,而不是逐元素除法。
将 y=(sin(N*4*pi*x)/(N*4*pi*x))
更改为 y=(sin(N*4*pi*x)./(N*4*pi*x))
请注意,在Matlab中,*
和/
将执行矩阵运算,而.*
和./
将执行数组运算。
旁注:看起来您正在使用 eval
来评估该函数的输出。如果是你的教授干的,别管它,但要记住even Matlab staff themselves suggest never to use eval.
问题 给定 N=1,天线的辐射图为 y(theta)=sin(N4pitheta)/(N4pitheta) 假设该公式在 的范围内有效。生成辐射图的极坐标图。为您的图表使用 400 点。
这是我的代码,我不断收到 "THETA and RHO must be the same size." 这是什么意思,我该如何修复我的 cod?谢谢
function [graph,x,y]=question3(N)
x=linspace(-pi,pi,400);
y=(sin(N*4*pi*x)/(N*4*pi*x));
graph='polar(x,y)';
end
您的问题是您执行的是矩阵除法,而不是逐元素除法。
将 y=(sin(N*4*pi*x)/(N*4*pi*x))
更改为 y=(sin(N*4*pi*x)./(N*4*pi*x))
请注意,在Matlab中,*
和/
将执行矩阵运算,而.*
和./
将执行数组运算。
旁注:看起来您正在使用 eval
来评估该函数的输出。如果是你的教授干的,别管它,但要记住even Matlab staff themselves suggest never to use eval.