用MATLAB编写程序很困难

时间:2015-08-07 07:21:09

标签: matlab

我要计算产品

acc = 1.44e-10;
a   = 1.732*acc;    
a1  = (a/2) * [sqrt(3), -1, 0];
a2  = (a/2) * [sqrt(3), 1, 0];
coordinates = [4.45714 0 0; %B
               2.22857 0 0.46152]; %A
R1 = coordinates(2, :)-coordinates(1,:);
R2 = R1 + a1;
R3 = R1 + a2;
R  = [R1' R2' R3'];
n  = dot(R,[ 0 0 1])/norm(R); 

但我总是得到这个错误

A and B must be same size.

1 个答案:

答案 0 :(得分:0)

当Matlab说 A和B的大小必须相同时,它指的是A中的Bdot(A,B)。在您的情况下,这分别表示R[0 0 1]。事实上,R的大小为3x3,而[0 0 1]的大小为1x3。

从数学上讲,点积只是为相同尺寸的物体定义的。您的对象(R[0 0 1])的维度不同。

具体地:

R =

   -2.2286   -2.2286   -2.2286
         0   -0.0000    0.0000
    0.4615    0.4615    0.4615

您可以在R1[0 0 1]之间使用点积;在R2[0 0 1]之间;以及R3[0 0 1]之间。但是你不能在[R1' R2' R3'][0 0 1]之间使用点积,因为这些对象的大小不同。