logicals and replacing values in 3D matrices

1 view (last 30 days)
I have three matrices. Their sizes are as follows:
x is m x n.
y is m x n.
z is m x n x q.
I can redefine all the values in y corresponding to x=2 by y(x==2)=NaN. I'd like to do this for all the corresponding values of z as well. It seems simple, but how do I do this? z(x==2,:) does not work.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 28 Feb 2014
[ii,jj]=find(x==2)
kk=repmat((1:numel(ii))',1,q)';
idx=sub2ind(size(z),repmat(ii,q,1),repmat(jj,q,1),kk(:))
z(idx)=nan

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!