If point x belongs to vertices of rectangle?

1 回表示 (過去 30 日間)
ABCDEFG HIJKLMN
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?
Thank you in advance!
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
Jon 2021 年 11 月 22 日
編集済み: 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 件のコメント
ABCDEFG HIJKLMN
ABCDEFG HIJKLMN 2021 年 11 月 22 日
Thank you!
Jon
Jon 2021 年 11 月 22 日
Your welcome, good luck with your project

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by