MATLAB:错误使用*内部矩阵尺寸必须一致

时间:2014-09-12 02:00:21

标签: matlab struct dimensions

所以我正在处理一个函数,该函数将从用户定义的结构接收输入以绘制椭圆体,但是Matlab不断吐出这个错误。以下是我遇到问题的部分:

theta = 0:(0.1):2*pi;
phi = 0:(0.1):pi;
a1 = ellipsoid_in(1).major_axis;
b1 = ellipsoid_in(1).minor_axis;
c1 = ellipsoid_in(1).transverse_axis;

x1 = a1*sin(phi)*cos(theta);
y1 = b1*sin(phi)*sin(theta);
w1 = c1*cos(phi);
plot3(x1,y1,w1)
grid on
hold on
x2 = x1;
y2 = y1;
w2 = w1;
plot3(x2,y2,z2)
xx = [x1;x2];
yy = [y1;y2];
ww = [w1;w2];

错误发生在我的第一个(x1)等式中,并且我已经尝试在它们上使用。*运算符,但结果相同。我猜这个问题来自我打电话的1x2结构,但我不知道如何修复它。结构的变量都对应于标量。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

theta = 0:(0.1):2*pi;
phi = 0:(0.1):pi;

通过以上两行,您创建了两个向量。这些是不同的长度(因为一个到pi,另一个到2*pi,步长相同。

你确实想要使用逐元素乘法(.*),但你需要你的向量长度相同......否则,哪些元素会相乘?