Finding a row with a certain value and the next nth rows after that
Show older comments
Hi
I would like to find a row with a specific value and the next nth rows after that.
0.8147 0.0975 0.1576 0.1419 0.6557
0.9058 0.2785 0.9706 0.4218 0.0357
0.1270 0.5469 0.9572 0.9157 5
0.9134 0.9575 0.4854 0.7922 0.9340
0.6324 0.9649 0.8003 0.9595 0.6787
0.9134 0.9575 0.4854 0.7922 5
0.6324 0.9649 0.8003 0.9595 0.6787
0.6324 0.9649 0.8003 0.9595 0.6787
So in the above example, i would like to find the last column == 5 and then the next two rows and extract those.
I know how to index and find column ==5 , but not how to find the next two rows.
thanks
4 Comments
Let's work thru -- how did you find the values you did? Show us your code.
And, what's the wanted output; the problem definition is not totally clear -- do you want both sets that could be returned from teh above array, only the first, only the last...???
dpb
on 18 Feb 2021
Pretty-much...altho you didn't answer the Q? posed of what, precisely is the wanted output?
Your code snippet above doesn't define lastcol nor row so can't tell for sure...if you set
lastcol=size(data,2);
note this would be a place to use the builtin addressing expression end that will return the size in the direction of an array in the direction corresponding to the position in the addressing expression it appears.
Similarly, if
row=[1:lastcol];
or equivalent, then you can write
idx=find(data(:,end)==5);
v=data(idx:idx+2,:);
NB: However, this returns only rows 3:5, not 3:5 and 6:8 which also satisfy the request.
Me Me
on 21 Feb 2021
Accepted Answer
More Answers (0)
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!