How to find neighbors in 4D array in MATLAB? -
How to find neighbors in 4D array in MATLAB? -
i bit confused , appreciate help.
i have read many posts finding neighboring pixels, beingness extremely helpful:
http://blogs.mathworks.com/steve/2008/02/25/neighbor-indexing-2/
however have problem applying on 4d matrix (a) size(a)=[8 340 340 15]. represents 8 groups of 3d images (15 slices each) of want neighbors. not sure size utilize in order calculate offsets. code tried, think not working because offsets should adapted 4 dimensions? how can without loop?
%a 4d matrix 0 or 1 values aidx = find(a);   % loop here?  [~,m,~,~] =size(a); neighbor_offsets = [-1, m, 1, -m]';  neighbors_idx = bsxfun(@plus, aidx', neighbor_offsets(:)); neighbors = b(neighbors_idx);    thanks, ziggy
have considered using convn? 
msk = [0 1 0; 1 0 1; 0 1 0]; msk4d = permute( msk, [3 1 2 4] ); %  create 1-3-3-1 mask neighbors_idx = find( convn( a, msk4d, 'same' ) > 0 );     you might find conndef useful defining basic msk in general way.
 matlab multidimensional-array neighbours 
 
Comments
Post a Comment