MATLAB - 極座標圖



MATLAB中的極座標圖提供了一種獨特而有效的方式,以圓形或徑向的方式視覺化資料。與使用x軸和y軸的笛卡爾座標不同,極座標圖使用徑向軸和角度軸。這些圖特別適用於表示本質上是圓形或週期性的資料,例如方向資料、週期性模式或週期性函式。

MATLAB是一個強大的數值計算環境,它提供內建函式和工具,可以輕鬆建立令人驚歎的極座標圖。本章將探討在MATLAB中創建極座標圖的基礎知識,瞭解極座標圖的組成部分,並展示示例來說明它們的應用。

在MATLAB中創建極座標圖

在MATLAB中創建極座標圖涉及在極座標中指定資料並使用適當的函式將其視覺化。`polarplot()`函式通常用於此目的。

以下是`polarplot()`的語法:

polarplot(theta, rho)
polarplot(theta, rho, LineSpec)
polarplot(theta1, rho1, ..., thetaN, rhoN)
polarplot(theta1, rho1, LineSpec1, ..., thetaN, rhoN, LineSpecN)
polarplot(rho)
polarplot(rho,LineSpec)
polarplot(Z)
polarplot(Z,LineSpec)

關於`polarplot()`語法的解釋:

**`polarplot(theta,rho)`** - 此函式生成極座標中的線圖,其中theta表示以弧度表示的角度,**rho**表示對應於每個點的半徑值。至關重要的是,兩個輸入都是相同長度的向量或大小相等的矩陣。當提供矩陣作為輸入時,函式將rho的列與theta的列進行繪製。或者,如果一個輸入是向量,另一個是矩陣,只要向量與矩陣的一個維度長度匹配,它們就可以被接受。

**`polarplot(theta, rho, LineSpec)`** - 此函式配置極座標中繪製線的線型、標記符號和顏色。

**`polarplot(theta1, rho1, ..., thetaN, rhoN)`** - 此函式配置極座標中繪製線的線型、標記符號和顏色。

**`polarplot(theta1, rho1, LineSpec1, ..., thetaN, rhoN, LineSpecN)`** - 此函式,當用作`polarplot(theta1, rho1, LineSpec1, ..., thetaN, rhoN, LineSpecN)`時,允許您為圖中指定的每條線分別定義線型、標記符號和顏色。

**`polarplot(rho)`** - 此函式生成一個圖,顯示向量rho中在從0到2π的均勻間隔角度上的半徑值。

**`polarplot(rho,LineSpec)`** - 此函式根據指定的LineSpec配置繪製線的線型、標記符號和顏色。

**`polarplot(Z)`** - 此函式視覺化向量或矩陣Z中包含的複數值。

**`polarplot(Z,LineSpec)`** - 此函式使用指定的LineSpec調整繪製線的線型、標記符號和顏色。

極座標圖示例

讓我們針對上述極座標圖的示例進行操作:

示例1:使用語法`polarplot(theta,rho)`

theta = linspace(0, 2*pi, 100);
rho = sin(2 * theta);
polarplot(theta, rho);

在此示例中,

  • **`linspace(0, 2*pi, 100)`** - 建立一個包含100個從0到2π弧度均勻間隔的角度的陣列theta。
  • **`sin(2 * theta)`** - 根據角度的兩倍的正弦值生成徑向值(rho)。這可以表示週期性模式。
  • **`polarplot(theta, rho)`** - 使用生成的theta和rho值繪製極座標圖。

**此處** - theta和rho都必須是相同長度的向量或大小相等的矩陣。如果使用矩陣,則該函式會將rho的列與theta的列進行繪製。

當您在matlab命令視窗中執行程式碼時,輸出為:

polarplot

示例2:使用`polarplot(theta, rho, LineSpec)`

此處的程式碼為:

theta = linspace(0, 2*pi, 100);
rho = sin(2 * theta);
polarplot(theta, rho, '-or');

在此示例中:

  • **`linspace(0, 2*pi, 100)`** - 建立一個包含100個從0到2π弧度均勻間隔的角度的陣列theta。
  • **`sin(2 * theta)`** - 根據角度的兩倍的正弦值生成徑向值(rho)。這可以表示週期性模式。
  • **`polarplot(theta, rho, '-or')`** - 使用生成的theta和rho值繪製極座標圖。`'-or'` LineSpec引數表示帶有圓形標記(o)的紅色線(-) ,用於每個資料點。

LineSpec 解釋

  • **`'-or'`** - 此LineSpec由三個部分組成。
  • **`'-'`** - 指定實線。
  • **`'o'`** - 指定每個資料點上的圓形標記。
  • **`'r'`** - 指定線和標記的紅色。

透過使用LineSpec,您可以輕鬆自定義極座標圖的外觀,使其更具視覺吸引力,並傳達有關資料的特定資訊。

當您在matlab命令視窗中執行程式碼時,輸出為:

polarplot theta

示例3:使用`polarplot(theta1, rho1, ..., thetaN, rhoN)`

theta1 = linspace(0, 2*pi, 100);
rho1 = sin(2 * theta1);
theta2 = linspace(0, 2*pi, 100);
rho2 = cos(2 * theta2);
polarplot(theta1, rho1, '-r', theta2, rho2, '--b');

在此示例中:

  • **`linspace(0, 2*pi, 100)`** - 建立包含100個從0到2π弧度均勻間隔的角度的陣列theta1和theta2。
  • **`sin(2 * theta1) and cos(2 * theta2)`** - 分別根據正弦和餘弦函式生成徑向值(rho1和rho2)。
  • **`polarplot(theta1, rho1, '-r', theta2, rho2, '--b')`** - 在極座標圖上繪製兩條線。第一條線(theta1,rho1)是實線('-r'),第二條線(theta2,rho2)是虛線('--b')。

當您在matlab命令視窗中執行程式碼時,輸出為:

polarplot theta1 thetaN

示例4:使用`polarplot(rho)`

我們對此語法使用的程式碼如下:

theta = linspace(0, 2*pi, 100);
rho = sin(2 * theta);
polarplot(rho);

當您在matlab中執行程式碼時,輸出為:

polarplot rho

示例6:使用`polarplot(Z)`

我們使用上述語法編寫的程式碼如下:

Z = [1+1i, -1-1i, 2+2i, -2-2i];
polarplot(Z);

在此示例中,我們建立一個包含四個複數的向量Z。然後,我們使用`polarplot(Z)`在極座標圖上繪製這些複數。

當代碼在matlab命令視窗中執行時,輸出為:

polarplot z

示例7:使用`polarplot(Z,LineSpec)`

我們擁有的程式碼是:

Z = [1+1i, -1-1i, 2+2i, -2-2i];
polarplot(Z, '-o', 'LineWidth', 1.5, 'MarkerSize', 10, 'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'g');

在此示例中,我們使用`polarplot(Z, '-o')`在極座標圖上繪製複數,並使用實線('-')和圓形標記('o')。然後,我們使用LineSpec引數中的附加引數自定義線寬('LineWidth')、標記大小('MarkerSize')、標記邊緣顏色('MarkerEdgeColor')和標記填充顏色('MarkerFaceColor')。

當代碼在matlab命令視窗中執行時,輸出為:

polarplot z linespec

繪製多條極座標線

在MATLAB中,極座標圖用於視覺化極座標中的資料,其中角度表示在x軸上,半徑(或幅度)表示在y軸上。可以在同一個極座標軸上建立多條線圖來比較不同的資料集。

讓我們建立一個示例來測試多條極座標線圖。

theta = linspace(0, 2*pi, 100);
rho1 = sin(2*theta);
rho2 = cos(2*theta);
rho3 = sin(theta);
polarplot(theta, rho1, '-b'); % Plot in blue
hold on;
polarplot(theta, rho2, '--r'); 
polarplot(theta, rho3, '-.g'); 
legend('sin(2\theta)', 'cos(2\theta)', 'sin(\theta)', 'Location', 'best');
title('Multiple Polar Line Plots');

程式碼解釋如下:

  • linspace生成100個在0到2π之間均勻分佈的值,這些值表示極座標圖的角度。
  • 使用theta的不同三角函式定義三組rho值(rho1、rho2和rho3)。這些集合將作為三條不同的線圖繪製在極座標軸上。
  • polarplot()用於繪製第一組rho值(rho1),使用實藍線('-b')。
  • hold on命令用於防止清除現有繪圖,以便可以向其中新增更多線圖。
  • 第二條極座標線,rho值為(rho2),使用虛紅線('--r')繪製。
  • 第三組rho值(rho3)使用點劃綠線('-.g')繪製。
  • 向繪圖中新增圖例以指示哪條線對應於哪個函式。還新增標題來描述其內容。

當您在matlab命令視窗中執行程式碼時,輸出為:

multiple polar plot lines
廣告
© . All rights reserved.