在matlab中使用不等大小的数组进行算术运算

时间:2014-11-22 21:50:39

标签: arrays matlab spiral

我试图在MATLAB中计算阿基米德螺旋各向同性天线阵列的功率模式的二维极坐标图。这需要具有不同大小的theta和phi阵列。

我使用的代码如下:

clear all
close all
clc
r=27000;  
phi=0:.02:2*pi;
theta=0:.02:pi/2;
px=r.*cos(phi);
py=r.*sin(phi);
wL=1;
k=(2*pi)/wL;
d=px.*sin(theta).*cos(phi)+py.*sin(theta).*sin(phi);
phase=0;
psi=k.*d+phase;

N=27;
PowPatt=(sin(N.*(psi./2))./(N.*sin(psi./2))).^2;
polar(psi,PowPatt)

当然我收到以下错误:

??? Error using ==> times
Matrix dimensions must agree.

Error in ==> powerpattern at 11
d=px.*sin(theta).*cos(phi)+py.*sin(theta).*sin(phi);

有没有改变我的代码来对theta和phi数组执行算术运算? 谢谢。

帕特里克

1 个答案:

答案 0 :(得分:1)

代码本身不起作用,因为theta和phi的大小不同。它们需要具有相同的大小才能执行元素乘法".*"操作。或者,它们需要是兼容的大小才能进行矩阵式乘法"*"。你也没有,所以你的问题不是代码,而是你对天线阵方程的解释。我们无法帮助您。

我猜测数组方程式可以让你在phi和theta的所有组合中进行置换,这样你就可以在phi和theta的一个或多个维度上求和。因此,您可能不得不引入for循环和/或sum()操作。由于我不知道你的天线阵方程,我无能为力。你必须回去看看物理学。一旦更好地理解了阵列天线方程,您就能够更好地编码它们。