今天在用matlab計算齊次變換矩陣時出現了乙個奇怪的現象,準備記錄一下。
我輸入的d-h引數為:[αi−
1\alpha_
αi−1
, ai−
1a_ai−1
, θ
i\theta_i
θi, d
id_i
di] = [-pi/2, 0, theta, 0],其中theta為符號變數。輸入後發現得到的結果如下圖所示:
可以看到,矩陣**現乙個非常小的分數,約為0。為什麼會這樣呢?
後來,我發現在matlab中,輸入cos(pi/2)後得到的結果並不是想象中的0。
這是因為輸入的pi並不是無理數,而是有限數,為3.1416,所以才會出現上述結果。
問題找到了,就容易解決了。有兩種解決方法:
cos函式的輸入是弧度制,只要換成角度制就可以避開這個問題,可以使用cosd函式。但需要注意的是,如果引數中存在符號變數,則必須使用弧度制函式;
可以先定義乙個符號變數pi,然後結果就正常了,如下圖所示。但具體原理還不清楚。
Matlab學習筆記2 關於函式
1.可以通過查詢fx來獲得自己想找到的函式。2.section區塊 run section可以用來debug。3.智慧型縮排。4.常用指令 if,elseif,else switch,case,otherwise while,break,continue,end for end pause retu...
關於MATLAB中imfilter函式的說明
函式名稱 imfilter 函式語法 g imfilter f,w,filtering mode,boundary options,size optinos 函式功能 對任意型別陣列或多維影象進行濾波 引數介紹 f是輸入影象,w為濾波模板,g為濾波結果 表1 1總結了其他引數的含義。表1 1 imf...
Matlab中的矩陣用法2
1 特殊向量 t 0 0.1 10 產生從0 10的行向量,元素之間的間隔為0.1 t linspace n1,n2,n 產生n1和n2之間線性均勻分布的n個數 預設n時,產生100個數 t lonspace n1,n2,n 預設n時,產生50個數 2 特殊矩陣 eye m 生成m階單位矩陣 eye...