MATLAB: Is it possible to find corresponding row from other matrix’s row?

MATLAB

y = [ 90 90 -45 0 0 45 45 0 -45 15 15;
90 90 -45 0 0 45 45 0 -45 15 15;
90 90 -45 0 0 45 45 0 -45 15 0;
90 90 -45 0 0 45 45 0 -45 15 0;
90 90 -45 0 0 45 45 0 -45 15 15;
90 90 -45 0 0 45 45 0 -45 15 15;];
y0 = sort(y,2);
y = y(sum([ones(size(y,1),1),diff(y0,[],2)~=0],2) >= numel(unique(y)),:);
y = permute(y ,[3 2 1]);
for k = 1:size(y,3)
[x0(:,:,k), x00(:,:,k)] = hist(y(:,:,k), unique(y(:,:,k)));
end
x0 =permute(x0,[3 2 1]); x00 =permute(x00,[3 2 1]);
x0(any(x0<2,2),:) = [];
I have to find corresponding row of "x00"

Best Answer

It is easy, you just need to assign the logical conditions to an index variable. So instead of this:
x0(any(x0<2,2),:) = [];
you should allocate that logical condition to a variable:
idx = any(x0<2,2);
and then you can use idx for any of the matrices:
>> xdel = x0(idx,:)
xdel =
2 4 1 2 2
2 4 1 2 2
>> xnew = x0(~idx,:)
xnew =
2 3 2 2 2
2 3 2 2 2
2 3 2 2 2
2 3 2 2 2
and now you can try x00(idx,:) and x00(~idx,:) yourself!