i have polar coordinates in a matrix 512x500 which can be displayed as in A with imagesc.
I can now convert them into cartesian coordinates. Since it is a spiral they will actually be cylindrical coordinates.
With
angle= linspace(0, 2*pi, size(polvec,2));
rad = linspace(1, 100, size(polvec,1));
[x,y,z] = pol2cart(a,b,c);
figure
surf(x,y,z)
view(2);
I also get a 2-D plot from above (B). But how do I convert this into a real 2-D transfomation? And how do I get a matrix out of it that now stores my data in 2D coordinates?
Thanks

댓글 수: 2

the cyclist
the cyclist 2020년 7월 4일
Can you upload your data in a MAT file (using the paper clip icon in the INSERT section of the toolbar here)?
prrrrr
prrrrr 2020년 7월 5일
it is a very big file and my internet connection is not s good. I have added an randi in a comment below

댓글을 달려면 로그인하십시오.

답변 (1개)

Star Strider
Star Strider 2020년 7월 4일

0 개 추천

This appears to be the same as: using surf and pol2cart on matrix.
You can get a 2D plot of it by using:
view(0,90)
Another (probably better) option would be to use the contour function instead of surf or mesh. The arguments are the same.

댓글 수: 4

prrrrr
prrrrr 2020년 7월 4일
yes but i can't convert it in a real 2-D transfomation
And I want to get a matrix out of it that now stores my data in 2D coordinates
I'm not getting anywhere with this.
Star Strider
Star Strider 2020년 7월 4일
Using the contour function will give you the (x,y) coordinates for each contour level as the first output, if you request outputs. If you know the level you want, you can specify that, and the function will provide two (x,y) vector pairs for that level, one for the inner contour and one for the outer contour. You can then save these to plot however you wish.
Without your matrix, I can only describe the approach. I cannot write specific code for it.
prrrrr
prrrrr 2020년 7월 5일
편집: prrrrr 2020년 7월 5일
i think i have it now already so with a random example. the other file is very large.
there i have the surface on the left and the contour on the right. I just don't know how to display the contour at a certain height. So only one slice. and of it I still try to save the matrix, each in a height. and the whole system.
thanks a lot for this great help here. i think matlab is great and i want to learn it (somehow you can do everything with it) but i am still at the beginning,
EDIT: Forgotten the Code :/ sorry
Z = randi([50 300],512,500);
angles = linspace(0, 2*pi, size(Z,2));
radii = linspace(1, 10, size(Z,1));
[A, R] = meshgrid(angles, radii);
[X, Y, Z] = pol2cart(A, R, Z);
subplot(1,2,1);
surf(X,Y,Z)
shading('interp')
grid on
title('surf')
subplot(1,2,2);
contour(X,Y,Z)
title('contour')
To display the contour at a specific height, specify the height:
contour(X,Y,Z, [150 150])
Here, it will show the contour at 150. (This is described in the documentation.)

댓글을 달려면 로그인하십시오.

카테고리

제품

태그

질문:

2020년 7월 4일

댓글:

2020년 7월 5일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by