MATLAB 극좌표 플롯

Ammar Ali 2023년1월30일
  1. MATLAB 극좌표 플롯
  2. MATLAB의 3D 극좌표 플롯
MATLAB 극좌표 플롯

이 튜토리얼에서는 MATLAB의 polarplot() 함수를 사용하여 극좌표 플롯을 만드는 방법에 대해 설명합니다.

MATLAB 극좌표 플롯

극좌표 플롯은 원점에서 점까지의 거리와 x축에 대한 각도를 표시하는 2차원 좌표계인 극좌표계에 생성됩니다.

Matlab의 polarplot() 함수를 사용하여 극좌표 플롯을 만들 수 있습니다. polarplot() 함수의 기본 구문은 다음과 같습니다.

polarplot(My_theta,My_rho)

위의 구문은 각 점의 각도 My_thetaMy_rho 변수에 저장된 원점으로부터의 거리에 따라 극좌표 플롯을 생성합니다. 두 입력이 벡터인 경우 길이가 같아야 합니다.

두 입력이 모두 행렬이면 크기가 같아야 하며 이 경우 첫 번째 행렬의 각 열이 두 번째 행렬의 각 열에 대해 그려집니다. 한 입력이 벡터이고 다른 입력이 행렬이면 벡터의 길이는 행렬에 있는 열 또는 행의 길이와 같아야 하며 행렬의 각 열은 벡터에 대해 그려집니다.

polarplot() 함수의 단일 입력이 행렬인 경우 이 함수는 극좌표 플롯에 서로 다른 색상으로 둘 이상의 선을 그립니다. 예를 들어 polarplot() 함수를 사용하여 극좌표에 두 개의 벡터를 표시해 보겠습니다.

아래 코드를 참조하십시오.

clc
clear

My_theta = 0:0.01:2*pi;
My_rho = sin(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho)

출력:

벡터의 극좌표 플롯

위의 코드에서는 두 개의 벡터를 사용했으며 출력에서 ​​플롯이 원점에서 점의 각도와 거리를 표시하는 것을 볼 수 있습니다. polarplot() 함수를 사용하여 단일 플롯에 여러 데이터 라인을 그릴 수도 있습니다.

행렬의 열로 각 행에 대한 데이터를 전달해야 하며 polarplot() 함수는 첫 번째 행렬의 첫 번째 열을 두 번째 행렬의 첫 번째 열과 함께 그리는 식으로 진행됩니다. 거리나 각도와 같이 한 차원에 동일한 값을 사용하려는 경우 해당 차원에 벡터를 사용할 수 있습니다.

예를 들어, 벡터와 행렬을 사용하여 동일한 극좌표 플롯에 여러 선을 표시해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

My_theta = 0:0.01:2*pi;
My_rho1 = sin(2*My_theta).*cos(2*My_theta);
My_rho2 = cos(2*My_theta).*cos(2*My_theta);
My_rho = [My_rho1; My_rho2];
polarplot(My_theta,My_rho)
legend('data1','data2')

출력:

벡터와 행렬의 극좌표 플롯

위의 코드에서 우리는 반지름에 대한 두 벡터를 생성한 다음 두 행으로 행렬에 저장했으며 polarplot() 함수는 동일한 각도 벡터에 대해 두 행을 그렸습니다. legend() 함수를 사용하여 데이터에 따라 플롯에 범례를 추가했습니다.

polarplot() 함수가 각 데이터 세트에 다른 색상을 지정하여 구별하기 쉽기 때문에 극좌표 플롯에 색상이 다른 두 개의 선이 있음을 출력에서 ​​볼 수 있습니다. 기본적으로 각도는 도 단위이지만 Matlab의 deg2rad() 함수를 사용하여 이를 라디안으로 변환할 수도 있습니다.

polarplot() 함수를 사용하여 원점에서 점의 반경을 정의하는 단일 벡터만 사용하여 극좌표 플롯을 만들 수도 있습니다. 이 기능은 동일한 간격으로 간격 0에서 2pi까지의 각도에 대해 반경 점을 표시합니다.

선 스타일, 마커 및 색상과 같은 선의 사양을 설정할 수도 있습니다. 세 개의 인수를 모두 단일 문자열에 전달하고 polarplot() 함수에 전달하여 라인 사양을 변경할 수 있습니다.

- 문자를 사용하여 선 스타일을 실선으로, -- 문자를 사용하여 점선, : 문자를 사용하여 점선, -.를 사용하여 대시-점선으로 선 스타일을 설정할 수 있습니다. 캐릭터. 마커는 데이터 포인트 상단에 배치되며 원의 경우 o, 별표의 경우 *, 다이아몬드의 경우 d, 오각형의 경우 p, 오각형의 경우 h와 같은 기호를 사용하여 설정할 수 있습니다. 헥사그램 등이 있습니다.

빨간색은 r, 녹색은 g 등과 같이 색상 이름이나 색상의 첫 글자를 사용하여 선의 색상을 설정할 수 있습니다. 예를 들어, 단일 문자열을 사용하여 극좌표 플롯의 선 사양을 변경해 보겠습니다.

아래 코드를 참조하십시오.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho,':*g')

출력:

라인 사양 변경

위의 코드에서 :*g 문자열을 사용하여 첫 번째 문자가 선 스타일을 점으로 설정하고, 두 번째 문자가 마커를 별표로 설정하고, 세 번째 문자가 선 색상을 녹색으로 설정하는 선 사양을 변경했습니다. .

플롯에 둘 이상의 데이터 세트를 플로팅한 경우 라인 사양은 그래프에 있는 모든 라인의 사양을 변경하고 데이터 세트 또는 라인을 구별하기 어려워질 수 있습니다.

속성의 이름을 문자열로 전달해야 하는 이름-값 쌍을 사용하여 플롯의 속성을 변경할 수도 있습니다. 그런 다음 해당 속성을 변경하기 위해 해당 값을 전달해야 합니다. Color, LineStyle, LineWidth, Marker, MarkerSizeMarkerFaceColor의 속성을 변경할 수 있습니다.

Color 속성은 선의 색상을 설정하고 RGB 3색 값, 16진수 색상 코드, 색상 이름 또는 색상 이름의 첫 글자를 전달할 수 있습니다. LineStyle 속성은 선의 스타일을 설정하며 사용 가능한 선 스타일은 위에서 설명했습니다.

LineWidth 속성은 선의 너비를 설정하며 기본적으로 그 값은 0.5로 설정되지만 임의의 양수로 설정할 수도 있습니다. Marker 속성은 데이터 포인트 위에 사용되는 마커를 설정하고 기본적으로 해당 값은 없음으로 설정되지만 위에서 설명한 마커 기호를 사용하여 설정할 수 있습니다.

MarkerSize 속성은 마커의 크기를 설정하는 데 사용되며 기본적으로 해당 값은 6으로 설정되며 양수 값으로 변경할 수 있습니다. MarkerFaceColor 속성은 마커 채우기 색상을 설정합니다. 즉, 플롯에 사용된 마커를 채우고 기본적으로 해당 값은 none으로 설정되지만 RGB 3색을 사용하여 모든 색상으로 설정할 수 있습니다. 값, 16진수 코드 또는 색상 이름.

예를 들어 위에서 언급한 속성을 변경해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho,'Color','red','LineStyle',':','Marker','o','LineWidth',2,'MarkerSize',10,'MarkerFaceColor','green')

출력:

플롯 속성 변경

polarplot() 함수 내부의 첫 번째 인수로 추가하여 플롯에 사용자 지정 축을 추가할 수도 있습니다. 반경 선 및 텍스트의 색상, 축 눈금 레이블 등과 같은 축의 속성을 설정할 수도 있습니다.

gca 명령을 사용하여 현재 축을 가져와야 하며, 그런 다음 이 축을 사용하여 축의 속성을 변경할 수 있습니다. 좌표축 객체 뒤에 점을 추가하고 속성 이름을 추가하면 등호 뒤에 속성 값을 설정할 수 있습니다.

예를 들어, 극좌표 플롯에서 반지름 선의 색상을 변경해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = cos(2*My_theta).*cos(2*My_theta);
polarplot(My_theta,My_rho)
x = gca;
x.RColor = 'red';

출력:

좌표축 속성 변경

극축의 속성에 대한 자세한 내용은 이 링크를 확인하십시오.

MATLAB의 3D 극좌표 플롯

3D 평면에 극좌표 플롯을 생성하려면 극좌표가 2차원만 있기 때문에 극좌표를 직교 좌표로 변경해야 하며 3차원 플롯을 생성하려면 3차원이 필요합니다.

pol2cart() 함수를 사용하여 극좌표를 데카르트 좌표로 변환한 다음 surf() 함수를 사용하여 3D 평면에 표면 플롯을 생성할 수 있습니다. 극좌표를 데카르트 좌표로 변환하는 알고리즘은 아래 그림과 같습니다.

극 2 데카르트

예를 들어, 극좌표 플롯의 극좌표를 데카르트 좌표로 변환하고 surf() 함수를 사용하여 3D 플롯을 생성해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

My_theta = 0:0.1:2*pi;
My_rho = sin(My_theta);
t = meshgrid(linspace(0,2*pi,63));
[x,y,z] = pol2cart(My_theta, My_rho, t);
surf(x,y,z)

출력:

표면 플롯

위의 코드에서 pol2cart() 함수에 세 개의 입력을 사용했습니다. 첫 번째 입력은 각도 벡터이고 두 번째 입력은 원점에서 점까지의 거리 벡터이며 세 번째 행렬은 3D 플롯을 생성하려는 그리드입니다.

위의 플롯에는 각도와 반경 치수가 없기 때문에 위의 플롯은 극좌표 플롯과 관련이 없습니다.

극좌표 플롯에서는 원점을 기준으로 한 점의 각도와 반지름을 볼 수 있지만 위의 플롯에서는 불가능합니다. 점의 각도와 반지름에 대한 정보만 얻으려는 경우 3D 극좌표 플롯을 만들 필요가 없습니다. 2D 극좌표 플롯에 polarplot() 함수를 사용할 수 있습니다.

link)에서 modelplot 기능에 대한 자세한 내용을 확인하십시오. 3D 플롯 작성에 사용되는 filename 기능에 대한 자세한 내용은 이 link)를 참조하십시오.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - MATLAB Plot