關於matlab中inv 和size 的請教

2021-09-27 02:21:25 字數 1166 閱讀 6262

關於matlab中inv()和size()的請教

目前在學習matlab和移動機械人的知識,petercorke書中關於位姿論述中有一句**「p1=inv(t1)x[p;1]」,在matlab上執行後報錯:錯誤使用 * (line 323)

lhs should be matrix with 2 rows。經查詢解決方案,網上給出「p1=doubel(inv(t1))*[p;1]」,執行後可以得出作者答案。

>> m1=inv(t1)

m1 =

0.8660 0.5000 -1.866

-0.5000 0.8660 -1.232

0 0 1

>> m2=m1*[p;1]

錯誤使用 * (line 323)

lhs should be matrix with 2 rows

>> m3=[p;1]

m3 =32

1>> m4=m1*m3

錯誤使用 * (line 323)

lhs should be matrix with 2 rows

>> m5=double(m1)

m5 =

0.8660 0.5000 -1.8660

-0.5000 0.8660 -1.2321

0 0 1.0000

>> m4=m5*m3

m4 =

1.7321

-1.0000

1.0000

從上面的測試**中發現,inv()函式輸出的m1與m5經浮點化後是不一樣的。

因為錯誤提示是關於矩陣行數問題,我用size()函式查詢了下m1和m5,結果如下:

>> size(m1)

ans =

1 1

>> size(m5)

ans =

3 3

最初問題的原因找到了,就是matlab認為m1是乙個1x1的矩陣,m5為3x3的矩陣。所以m1與m3無法相乘。

t1為3x3矩陣,inv()函式求逆後得到的矩陣結構是3x3的,但是matlab卻認為是1x1的?

size()計算m1的結果是否正確?

關於MATLAB中imfilter函式的說明

函式名稱 imfilter 函式語法 g imfilter f,w,filtering mode,boundary options,size optinos 函式功能 對任意型別陣列或多維影象進行濾波 引數介紹 f是輸入影象,w為濾波模板,g為濾波結果 表1 1總結了其他引數的含義。表1 1 imf...

matlab中關於函式檔案和指令碼檔案使用例項

matlab中關於函式檔案和指令碼檔案使用例項如下 一般來說分兩種情況 如果首行 不包括注釋 不是以function開頭的,這種叫做指令碼或者命令。如果首行 不包括注釋 以function開頭,這種叫做函式。對於指令碼,可以直接複製到命令列執行,也可以儲存成m檔案執行。而函式必須儲存成m檔案,然後在...

關於自動生成藝術字型和獲得字型檔案初始Size

using unityengine using system.collections using unityeditor using system.io using unityengine.ui using system.collections.generic public class play d...