# Extracting radially symmetric data from a matrix

2 views (last 30 days)
MatlabUser17 on 15 May 2018
Commented: Rena Berman on 30 May 2018
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
Rena Berman on 30 May 2018

Image Analyst on 16 May 2018
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;
subplot(2, 2, 2);
axis on;
subplot(2, 2, 3);
imshow(r2, []);
axis on;
% Get mean of r1 image inside circle mask
message = sprintf('The mean of r1 inside the circle mask = %f', mean_r1);
uiwait(helpdlg(message));
Image Analyst on 17 May 2018
No, pass the coordinates of the circle perimeter (your x and y) into improfile().