How can I find everything between two values?

1 view (last 30 days)
let's say I have the array and I was given another 2 X N array for the location of a value in the array
  • a b c d
  • e f g h
  • i j k l
  • how do I find values between two values using for loop, for example: how to I find 'e' if I was given the location of a&i, and find'b c' with the location of a and d. The two known values will always be in the same row or column.

Accepted Answer

Image Analyst
Image Analyst on 8 Jun 2017
Try this, with your two coordinates (row1, col1) and (row2, col2)
if row1 == row2 % Rows are equal
output = m(row1, col1+1:col2-1);
else % Columns are equal
output = m(row1+1:row2-1, col1);
end
You'll have to check and make sure that 1 and 1 are not the same row and column so that there is actually something in between them. And make sure that 2 has larger columns or rows than 1. I didn't put in that kind of pre-validation of the row and column indexes but it's easy to do.
  4 Comments
Yunming Zhang
Yunming Zhang on 9 Jun 2017
what if I want to go left to right as well as right to left?
Image Analyst
Image Analyst on 10 Jun 2017
What does that mean? If you just want row1 to be the max instead of the min, just swap min and max inside deal().

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!