關於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...