How can I test that tab values exist in other sequence?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Mira le
am 13 Jun. 2023
Beantwortet: Parag Jhunjhunwala
am 13 Jun. 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 Kommentare
Akzeptierte Antwort
Dyuman Joshi
am 13 Jun. 2023
Bearbeitet: Dyuman Joshi
am 13 Jun. 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 Kommentare
Weitere Antworten (2)
Ronit
am 13 Jun. 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 Kommentare
Parag Jhunjhunwala
am 13 Jun. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Testing Frameworks finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!