Filter löschen
Filter löschen

Find all occuarances of two numbers together

2 Ansichten (letzte 30 Tage)
Inna Pelloso
Inna Pelloso am 26 Okt. 2020
Kommentiert: Image Analyst am 26 Okt. 2020
Hi,
I have an array, a = [ 0 -1 1 0 0 -1 1 0]
How can I fing all the ocurances of [ 1 0], ie. the index showing when the number 0 occurs after the number 1.
I want to create, b = [0 0 0 1 0 0 0 0 1].
I'm trying to use teh strfind fuction, but am stuck.
Thank you!
Inna

Akzeptierte Antwort

Ameer Hamza
Ameer Hamza am 26 Okt. 2020
Try this
a = [ 0 -1 1 0 0 -1 1 0];
idx = strfind(a, [1 0])+1;
b = zeros(size(a));
b(idx) = 1;

Weitere Antworten (1)

Mathieu NOE
Mathieu NOE am 26 Okt. 2020
hello Inna
you have to test a vs [1 0] and not [0 1]
this is the code :
a = [ 0 -1 1 0 0 -1 1 0];
t = [1 0];
ind = findstr(a,t);
ind_zero = ind+1; % findstr output index is for the first term of "t" (1) => to get the index of the trailing "0" you need to add 1
b = zeros(size(a));
b(ind_zero) = 1
  2 Kommentare
Bruno Luong
Bruno Luong am 26 Okt. 2020
Bearbeitet: Bruno Luong am 26 Okt. 2020
Attention, better use strfind and not findstr, if a = 1
>> findstr(1,[0 1]) % not expected result
ans =
2
>> strfind(1,[0 1])
ans =
[]
Image Analyst
Image Analyst am 26 Okt. 2020
findstr is not recommended. Use contains or strfind instead.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by