關於MATLAB中cos pi2 不等於0的問題

2021-10-24 06:47:16 字數 761 閱讀 6956

今天在用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...