MATLAB atan 和 atan2
atan 和 atan2 都是求反正切函式,但引數數量和計算方法都有不同。
atan2(a,b)是4象限反正切,它的取值不僅取決於正切值a/b,還取決於點 (b, a) 落入哪個象限
當點(b, a) 落入第一象限時,atan2(a,b)的範圍是 0 ~ pi/2;
當點(b, a) 落入第二象限時,atan2(a,b)的範圍是 pi/2 ~ pi;
當點(b, a) 落入第三象限時,atan2(a,b)的範圍是 -pi/2~0;
當點(b, a) 落入第四象限時,atan2(a,b)的範圍是 -pi~-pi/2
而 atan(a/b) 僅僅根據正切值為a/b求出對應的角度 (可以看作僅僅是2象限反正切)
當 a/b > 0 時,atan(a/b)取值範圍是 0 ~ pi/2;
當 a/b < 0 時,atan(a/b)取值範圍是 -pi/2~0
故 atan2(a,b) = atan(a/b) 僅僅發生在 點 (b, a) 落入第一象限 (b>0, a>0)或 第三象限(b>0, a<0)。
當點 (b, a) 落入第二、三象限時,很顯然atan2(a,b) 不等於 atan(a/b) ,並且atan2(a,b)也不可能等於 2*atan(a/b) 。
這是因為,假如點 (b, a) 落入第二象限,則 a/b<0, 故atan(a/b)取值範圍始終是 -pi/2~0,2*atan(a/b) 的取值範圍是-pi~0,然而,atan2(a,b)的範圍是 pi/2 ~ pi,故不可能有atan2(a,b) = 2*atan(a/b) 。假如點(b, a) 落入第三象限,則則 a/b>0 , 故 atan(a/b) 取值範圍是 0 ~ pi/2,2*atan(a/b) 的取值範圍是 0 ~ pi,而此時atan2(a,b)的範圍是 -pi~-pi/2,很顯然,atan2(a,b) = 2*atan(a/b)
舉個例子,a = 1, b = -1,則 atan(a/b) = atan(-1) = -pi/4, 而 atan2(a,b) = 3*pi/4
相關文章
- Python atan2() 函式Python函式
- JavaScript Math.atan()JavaScript
- JavaScript Math.atan2()JavaScript
- python Math.atan2() degrees()Python
- Octave和matlab的相容性Matlab
- MATLAB(6)矩陣和向量運算Matlab矩陣
- 利用matlab求解方程和方程組Matlab
- 牛頓插值 C++ 和 Matlab實現C++Matlab
- 【MATLAB】讀取和寫入文字檔案Matlab
- matlab開啟和生成使用.p檔案和exe檔案Matlab
- Matlab學習-視覺化和程式設計Matlab視覺化程式設計
- matlab中中影象PSNR和SSIM的計算Matlab
- C++和MATLAB混編的問題集錦C++Matlab
- vscode和matlab聯動-提高開發效率VSCodeMatlab
- MATLAB(2)資料型別一(數值型和…Matlab資料型別
- MATLAB(3)資料型別二(結構體和…Matlab資料型別結構體
- ADOV路由和DSR路由matlab對比模擬路由Matlab
- matlab技巧Matlab
- matlab classdefMatlab
- geoshow in matlabMatlab
- matlab-emacs執行matlab程式出錯.不能呼叫matlab命令列模式MatlabMac命令列模式
- Python和Matlab有何區別?哪個更難?PythonMatlab
- MATLAB生成.coe檔案和.mif檔案程式碼示例Matlab
- MATLAB一維插值和二維插值 比較Matlab
- matlab影像對比度增強,拉伸和灰度變換Matlab
- matlab之size:返回矩陣的行數和列數Matlab矩陣
- matlab統計 頻數、頻率和累積頻率Matlab
- matlab對不定積分和定積分的計算Matlab
- 【matlab程式設計】matlab隨機數函式Matlab程式設計隨機函式
- matlab快捷鍵Matlab
- 模板匹配(matlab)Matlab
- matlab 基礎Matlab
- Matlab筆記Matlab筆記
- Matlab繪圖Matlab繪圖
- [MATLAB]排列大小Matlab
- MATLAB插值Matlab
- matlab fscanf用法Matlab
- [MatLab]學習筆記2:MatLab數值資料Matlab筆記