【问题标题】:arithmetic operations with arrays of unequal size in matlabmatlab中不等大小数组的算术运算
【发布时间】:2014-11-22 21:50:39
【问题描述】:

我正在尝试在 MATLAB 中计算各向同性天线的阿基米德螺旋阵列的功率模式的 2D 极坐标图。这需要一个大小不同的 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 数组执行算术运算? 谢谢。

帕特里克

【问题讨论】:

    标签: arrays matlab spiral


    【解决方案1】:

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

    我猜想数组方程打算让您对 phi 和 theta 的所有组合进行置换,以便您可以对 phi 和 theta 的一个或多个维度求和。因此,您可能不得不引入for 循环和/或sum() 操作。因为我不知道你的天线阵列方程,所以我帮不上忙。你必须回去看看物理。一旦您更好地理解了阵列天线方程,您将能够更好地对其进行编码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-13
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多