How can I test that tab values exist in other sequence?
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Dyuman Joshi
2023 年 6 月 13 日
編集済み: Dyuman Joshi
2023 年 6 月 13 日
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 件のコメント
その他の回答 (2 件)
Ronit
2023 年 6 月 13 日
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 件のコメント
Parag Jhunjhunwala
2023 年 6 月 13 日
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Testing Frameworks についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!