# If point x belongs to vertices of rectangle?

1 回表示 (過去 30 日間)
ABCDEFG HIJKLMN 2021 年 11 月 22 日
コメント済み: Jon 2021 年 11 月 22 日
I have defined a rectangle with four points, x1_min, x1_max, x2_min and x2_max. My goal is to create an if cycle with the condition where a point x is any of the four corners of this rectangle.
Instead of writing something like ( (x(1) == x1_min && x(2) == x2_min) || (x(1) == x1_min && x(2) == x2_max) || (x(1) == x1_max && x(2) == x2_min) || (x(1) == x1_max && x(2) == x2_max) ), is there a simpler way?
x1_min = 0.1;
x1_max = 2.0;
x2_min = 0.1;
x2_max = 2.5;
x_bound = [x1_min x1_max ; x2_min x2_max];
x = [0.1 0.1];

サインインしてコメントする。

### 採用された回答

Jon 2021 年 11 月 22 日

You could define a 4 by 2 array, corners, with the corner values (first column x values, second column y values) then do something like
if any(all([2,3]==corners,2))
you could also use ismember
ismember([2,3],corners,'rows')
I think using ismember is clearer
##### 2 件のコメント表示 1 件の古いコメント非表示 1 件の古いコメント
Jon 2021 年 11 月 22 日

サインインしてコメントする。

### カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

R2021a

### Community Treasure Hunt

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

Start Hunting!