Info

This question is closed. Reopen it to edit or answer.

how to get the same elements from many different vectors and each index for each vectors?

1 view (last 30 days)
for example, now I have three vectors as below:
v1=['a','b','c','d','e','f']; v2=['a','c','d','f','g']; v3=['c','d','e','j'];
Now I want to get the same elements ['c','d'] and index1=[3,4],index2=[2,3],index3=[1,2];
Is there some good function for this?

Answers (1)

KSSV
KSSV on 8 Feb 2017
doc intersect
clc; clear all ;
v1=[{'a'},{'b'},{'c'},{'d'},{'e'},{'f'}];
v2=[{'a'},{'c'},{'d'},{'f'},{'g'}];
v3=[{'c'},{'d'},{'e'},{'j'}];
[a1,b1,c1] = intersect(v1,v2) ;
[a2,idx2,idx3] = intersect(a1,v3) ;
[common,idx1,c3] = intersect(v1,a2) ;
common
idx1
idx2
idx3
  4 Comments
Stephen23
Stephen23 on 8 Feb 2017
Edited: Stephen23 on 8 Feb 2017
@KSSV: why make this so complicated?:
v1=[{'a'},{'b'},{'c'},{'d'},{'e'},{'f'}];
why not simply write the cell array itself:
v1 = {'a','b','c','d','e','f'};
which is simpler to read and will make your code faster too.

Community Treasure Hunt

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

Start Hunting!