How can I test that tab values exist in other sequence?
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Mira le
il 13 Giu 2023
Risposto: Parag Jhunjhunwala
il 13 Giu 2023
Hello every one
I have a problem
I want you help me
I have a vect = [ 5 34] for example
and an other sequnce that contains many values:
seq=[1 2 3 4 5 12 15 20 23 25 30 34 35 40]
how can I obtain the position of each value of vect if exist in seq
here in this exampe
the positions are:5 and 12
please hepl me!
0 Commenti
Risposta accettata
Dyuman Joshi
il 13 Giu 2023
Modificato: Dyuman Joshi
il 13 Giu 2023
vect = [5 34];
seq=[1 2 3 4 5 12 15 20 23 25 30 34 35 40];
[~,ind] = ismember(vect, seq)
Note that this only returns the first occurence of an element in seq.
%That is, if seq has multiples of an elements, it will return the first index
seq0=[1 2 3 4 5 12 15 20 23 25 30 34 35 40 5];
%15th element of seq0 is 5, so [5 12 15] elements of seq0 are common with vect
%but it only returns 5, the first index at which 5 is found in seq0
[~,ind] = ismember(vect, seq0)
If an element is not present in the 2nd array, it will return 0 for it.
0 Commenti
Più risposte (2)
Ronit
il 13 Giu 2023
vect = [5 34 42];
seq = [1 2 3 4 5 12 15 20 23 25 30 34 35 40];
[~, loc] = ismember(vect, seq);
disp(loc);
This will give the indices of that vect element in seq and 0 if it's not present.
0 Commenti
Parag Jhunjhunwala
il 13 Giu 2023
There are two ways to find the position of each value of vect in seq:
1. Using find() function:
pos=zeros(1,length(vect));
for i=1:length(vect)
if(~isempty(find(seq==vect(i), 1)))
pos(i)=find(seq==vect(i));
end
end
2. Using ismember() inbuilt function:
[~,pos]=ismember(vect,seq);
0 Commenti
Vedere anche
Categorie
Scopri di più su Testing Frameworks in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!