matlab裡面的cross什麼意思

2021-09-21 09:51:33 字數 1580 閱讀 5405

1樓:匿名使用者

第一個問題:

假設: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是不存在的,所以報錯告訴你維度不對。

2樓:楊柳風

c = cross(a,b)返回向量叉積a和b,即,c = a x b,a和b必須是3元向量。c = crossa,b), 返回的叉積a和b沿長度為3的第一個方面。

c = cross(a,b,dim),,其中a和b是n-d 陣列,返回向量叉積維a和b a和b尺寸必須有相同的大小,兩者size(a,dim)和size(b,dim)必須為3

matlab裡面的ones是什麼意思?

matlab中[a,b]=cross(c,d)是什麼意思

3樓:我行我素

在命令窗中用help cross,會發現:cross是矩陣叉乘,形如:c=cross(a,b)

只能得到一個矩陣c,不會有第二個輸出引數。但題中[a,b]=cross(c,d)有第二個引數,顯然,cross不是指matlab中的這個命令,題中的cross可能是自寫的函式,而自寫函式會因程式不同而有不同的意思。

matlab裡面的parent屬性什麼意思

matlab的圖形bai系統叫做handle graphics,每個繪 圖對du象zhi都有一個控制代碼,而各種繪dao圖物件間是按照樹狀結專構組織的,最底層的是根屬 root 其控制代碼固定為0,在root上可以有多個繪圖視窗 figure 每個視窗裡面又可以有控制元件 uicontrol 和座標...

為什麼matlab裡面的示波器顯示不出全部時間的影象

正常的 0到50的時候,波形的幅度 週期,超出了螢幕的範圍,自然就沒波形了,正常的 右擊,快捷選單中有個 autoscale 選項,即可 matlab的示波器只顯示到10,怎麼才能顯示到100 預設是10.0s,修改即可,然後重新執行模型。希望採納,設定為滿意答案,謝謝。matlab的simulin...

帖子裡面的沙發。什么意思啊,帖子裡面的沙發。什麼意思啊

此為真正原因 一群人在看貼,突然很新的一個帖子發上來,第一個回帖的感嘆了一句 sofast,之後所有的新資源都有人上去感嘆sofast.沙發就是sofast的諧音,然後就這麼流傳下來了。second floor 在微軟智慧拼音裡,你打sf的話,本來是要打的是second floor,但出來了沙發,這...