Path: news.mathworks.com!not-for-mail
From: "Anthony Hopf" <anthony.hopf@gmail.com>
Newsgroups: comp.soft-sys.matlab
Subject: Remapping Matrix Values (3d to 2d) for Convolution
Date: Sun, 4 Apr 2010 16:32:05 +0000 (UTC)
Organization: The MathWorks, Inc.
Lines: 9
Message-ID: <hpaeu5$kp5$1@fred.mathworks.com>
Reply-To: "Anthony Hopf" <anthony.hopf@gmail.com>
NNTP-Posting-Host: webapp-03-blr.mathworks.com
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1270398725 21285 172.30.248.38 (4 Apr 2010 16:32:05 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Sun, 4 Apr 2010 16:32:05 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 1899184
Xref: news.mathworks.com comp.soft-sys.matlab:623358

This is my first post... and I'm hoping I am overlooking something, but thank you in advance for any help.

I am starting off with a 3d matrix of points that are values in space, a simulated volume.  Each point is indexed with x, y and z values, e.g. Value = Matrix(xval,yval,zval).  I have also calculated the r, theta, and phi values to each point in the simulated volume.  Each of these values also have their own matrix, e.g. rvalue = r(xval,yval,zval).

What I would like to do is remap the original Matrix from above using the r, theta, and phi values mentioned for a constant r value to a 2d matrix.  I would like to set an r value with a filter like: r > 11e3-dx & r < 11e3+dx. This will likely give me a value for each theta and phi value at that r value.  Now I can filter the Matrix only keeping the new values and setting all of the other to NaN, still a 3d matrix.  What I would like to do now is take these values in Matrix and map them to a 2d matrix that way I can do a 2d convolution over them and place them back into the 3d matrix.

I realize I don't need to filter the points and replace the other points with NaN's but it was a way for me to visualize what I was doing.  My initial thought was to create a for loop that goes through each point and if it meets the criteria place it in the 2d matrix mapped to theta and phi values for a given r value... but this will take forever with a matrix that is 450x450x30.  The other issue is that phi ranges -pi to pi so I would need to "unwrap" the 3d space.

Does anyone have any ideas that may help?