matlab里面的cross什么意思

 我来答
洪萍佘翎
2019-02-02 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:620万
展开全部
第一个问题:
假设:
a
=
[1
2
3];
b
=
[4
5
6];
则你代码中的ab=[a;b];就得到
ab
=
1
2
3
4
5
6
你代码中的最后一行dd就是a,b的cross,即:
cross(a,b)
=
-3
6
-3
中间三行代码
dd(1)=det(ab(:,[2,3]));
dd(2)=-det(ab(:,[1,3]));
dd(3)=det(ab(:,[1,2]));
实际上就是求这个cross的过程,解释如下:
dd的第一个元素,是求ab中的第二列和第三列的行列式(det就是求行列式的意思,ab(:,[2,3])中“:”表示取所有行,[2,3]表示取第2和第3列),即2*6-5*3,结果是-3;
dd的第二个元素,是求ab中的第一列和第三列的行列式后再取负值,即-(1*6-4*3),结果是6;
dd的第三个元素,是求ab中的第一列和第二列的行列式,即1*5-2*4,结果是-3。
第二个问题:
在matlab中,符号“*”和符号“.*”是两种不同的乘法。
1、
C
=
A*B,C中的第一个元素C11是A的第一行与B的第一列对应相乘,并累加,这种乘法要求A的列数与B的行数相同;
C
=
A.*B,C中的第一个元素C11是A的第一个元素A11去乘以B的第一个元素B11,C12=A12*B12.......C21=A21*B21........
2、
点积是求两个向量对应元素相乘后的累加和,要求两个向量长度一致,matlab中对应的函数是dot(a,b)。
你的问题:
a,b是两个行向量(即1*3的,一行三列),b'就把b变成了一个3*1的列向量
a*b':即1*3的行向量去乘以3*1的列向量,正好是3对元素对应相乘,然后累加;
如果你变成了a.*b':依据上面说点乘含义,matlab会去做a11*b11,
a12*b12,
a13*b13,但由于b'是一个列向量,b12和b13是不存在的,所以报错告诉你维度不对。
Sievers分析仪
2024-10-13 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式