MATLAB ヘルプ センター
polyshape の境界を単純化
polyshape
polyout = simplify(polyin)
polyout = simplify(polyin,'KeepCollinearPoints',TF)
polyout = simplify(polyin) は、多角形 polyin の境界で構成され、重複する頂点がすべて削除され、すべての境界の交差と適切でない入れ子が解決されている polyshape オブジェクトを返します。
polyin
例
polyout = simplify(polyin,'KeepCollinearPoints',TF) は、同一線上の点を polyout に保持するか削除するかを指定します。
TF
polyout
すべて折りたたむ
境界の交差を含む多角形を作成してプロットします。
P = [0 0; 1 1; 1 0; 0.5 0.5; 0 1; 0 0]; polyin = polyshape(P,'Simplify',false)
polyin = polyshape with properties: Vertices: [5×2 double] NumRegions: 1 NumHoles: 0
plot(polyin)
関数 simplify を使用して交差を削除し、適切に定義された多角形を作成します。多角形を単純化すると、境界の形状は維持されますが、多角形は 2 つの個別の領域に分割されます。
simplify
polyout = polyshape with properties: Vertices: [7×2 double] NumRegions: 2 NumHoles: 0
入力 polyshape。スカラー、ベクトル、行列または多次元配列として指定します。
データ型: polyshape
false
true
同一線上の頂点インジケーター。false または true として指定します。
false — 出力 polyshape が境界の定義に必要な最小数の頂点のみを含むように、同一線上の点を削除する。
true — 同一線上の点をすべて頂点として保持する。
'KeepCollinearPoints' パラメーターが指定されていない場合、その値は入力 polyshape の作成時に使用した値に自動的に設定されます。
'KeepCollinearPoints'
データ型: logical
logical
すべて展開する
使用上の注意および制限:
コード生成用に動的メモリ割り当てを有効にしなければなりません。
名前と値のペアはコンパイル時の定数でなければなりません。
backgroundPool
ThreadPool
simplify 関数で、多くの境界をもつ polyshape オブジェクトに対して演算する際のパフォーマンスが向上しています。たとえば、次のコードは 11,100 個の頂点をもつ polyshape オブジェクトを単純化します。以前のリリースと比較して、このコードは約 23 倍速くなっています。
function t = timingTest n = 300; x = (1:n)'*[sind(0:10:360),NaN]; y = (1:n)'*[cosd(0:10:360),NaN]; p = polyshape(x(:),y(:),Simplify=false); f = @() simplify(p); t = timeit(f); end
おおよその実行時間は以下のとおりです。
R2024a: 0.28 秒
R2024b: 0.012 秒
このコードの時間測定では、Windows® 11、AMD EPYC™ 74F3 24 コア プロセッサ (3.19 GHz) 搭載のテスト システムで、関数 timingTest を呼び出しました。
timingTest
issimplified | polyshape
issimplified
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ