Retrieving Rows based on Columns

1 view (last 30 days)
Suppose,
% double
var1=[ 1 1 2 4 5
2 14 15 16 17];
% cell
var2={ 1 5 6 7
3 7 6 5
4 2 5 9
2 1 5 7};
How can I retrieve the rows in var2 (column 1) which corresponds to var1 (column 1).
Desired Result:
1 5 6 7
2 1 5 7
P/S: If it's not too troublesome, can you please include an explanation as well? I would like to learn from it.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 3 Jul 2013
c1=cell2mat(var2(:,1))
idx=cell2mat(arrayfun(@(x) find(ismember(c1,x)),var1(:,1),'un',0))
out=var2(idx,:)

More Answers (0)

Categories

Find more on Data Types in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!