"Vector must be strictly increasing or strictly decreasing with no repeated values" error
조회 수: 17 (최근 30일)
이전 댓글 표시
Hello,
I'm trying to use contour to represent some data, but I get this error.
Thank you in advance.
R_a=3;
N=100;
phi=linspace(0,2*pi,N);
rho= linspace(0,R_a,N);
r = randi([50 70],1,length(rho));
A=ones(length(rho)).*r;
[x_c,y_c] = pol2cart(phi,rho);
[Ro_tag, Phi_tag]=meshgrid(rho,phi);
contour(x_c,y_c,A);
채택된 답변
Matt J
2020년 8월 31일
편집: Matt J
2020년 8월 31일
Your meshgrid must be Cartesian:
R_a=3;
N=100;
[X,Y]=meshgrid( linspace(-R_a,+R_a, N) );
[Phi,Rho]=cart2pol(X,Y);
A= ... computaton based on Phi and Rho ...
contour(X,Y,A);
댓글 수: 3
Matt J
2020년 8월 31일
편집: Matt J
2020년 8월 31일
Very well, then I modify my answer to,
R_a=3;
N=100;
[X,Y]=meshgrid( linspace(-R_a,+R_a, N) );
A= ... computaton based on X and Y ...
contour(X,Y,A);
The point is, A needs to be sampled on a normal Cartesian meshgrid for the purposes of doing the contour plot. You cannot, as a starting point, set up your sample locations in polar coordinates because they will not remain monotonic when transformed by pol2cart().
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Polar Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!