Extracting radially symmetric data from a matrix
3 次查看(过去 30 天)
显示 更早的评论
Hi. I have a 2D matrix which I can plot using imagesc with respect to distance: x and y (from -xs to +xs). Here's how I discretize my data on x and y:
xs=D./2;
dx=2.*xs./N;
dy=dx;
X=linspace(-xs,xs,N);
Y=linspace(-xs,xs,N);
[x y]=meshgrid(X,Y);
r1=(x.^2+y.^2).^(0.5);
TH1=atan2(y,x);
Now I need to extract radially symmetric sets of data for further analyzing. I mean from 0 to r1. How should I choose the width of r? If I have two matrices like this, how can I interpolate and compare the data on the same 'r' from one matrix with the other one? Thanks
回答(1 个)
Image Analyst
2018-5-16
Do you want something like this:
D = 10
N = 100
xs=D./2;
dx=2.*xs./N;
dy=dx;
X=linspace(-xs,xs,N);
Y=linspace(-xs,xs,N);
[x y]=meshgrid(X,Y);
r1=(x.^2+y.^2).^(0.5);
subplot(2, 2, 1);
imshow(r1, []);
axis on;
circleMask = r1 < 3;
subplot(2, 2, 2);
imshow(circleMask, []);
axis on;
r2 = r1 .* double(circleMask);
subplot(2, 2, 3);
imshow(r2, []);
axis on;
% Get mean of r1 image inside circle mask
mean_r1 = mean(r1(circleMask))
message = sprintf('The mean of r1 inside the circle mask = %f', mean_r1);
uiwait(helpdlg(message));
4 个评论
Image Analyst
2018-5-17
No, pass the coordinates of the circle perimeter (your x and y) into improfile().
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Geographic Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!