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!
0 个评论
采纳的回答
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 个评论
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 Center 和 File Exchange 中查找有关 Time Series Events 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!