Index a series of integers in a column of matrix

1 次查看(过去 30 天)
I am trying to find a function that will produce what row a series of numbers are together. For example in a column of the following:
T2 = [2 7 4 5 1 0 1 3 1 5 6 7 4 7 2 7]'
I would like to find which row there is a specific transition between 2 and 7 and vice versa. I have used the find(T2 == 2 & 7) function, however, that produces the location of every single location where the integer is exactly equal to 2 and 7.
Any suggestions?? Thank you!

采纳的回答

Star Strider
Star Strider 2019-8-20
I am not sure what you want.
Try this:
T2 = [2 7 4 5 1 0 1 3 1 5 6 7 4 7 2 7]';
Idx = strfind(T2', [2 7])
Out = T2([Idx(:) Idx(:)+1])
producing:
Idx =
1 15
Out =
2 7
2 7
  4 个评论
Cheyenne Contreras
# Node
185 7
185 2
185 0
185 2
185 7
Hello,
Extending on this line of code, I need to determine the location of of 2 OR 7 when they are next to each other in the string. In the previous code, it was finding the occurance of the first location when 2 was before 7 and vice versa. Does anyone know if there is code to determine the second location regardless of order?
Thank you!
Star Strider
Star Strider 2019-9-9
A slight change in the earlier code:
T2 = [2 7 4 5 1 0 1 3 1 5 6 7 4 7 2 7]';
Idx1 = strfind(T2', [2 7]);
Idx2 = strfind(T2', [7 2]);
Idx = [Idx1(:); Idx2(:)]
Out = T2([Idx(:) Idx(:)+1])
produces:
Idx =
1
15
14
Out =
2 7
2 7
7 2
Note that you can use ‘Idx1’ and ‘Idx2’ separately, if you want specifically to index ‘[2 7]’ and ‘[7 2]’. I combined them here for convenience.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Time Series Events 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by