大きな二次元配列から不特定の間隔かつ特定サイズの二次元行列をfor loopを使わずに取り出す方法に関して
Afficher commentaires plus anciens
目的としては、大きな二次元の配列(画像等)から特定の大きさを持つ配列を抽出し、それをCell配列や通常のArrayとして格納したいと考えています。
具体的な状況は添付の写真のように、大きな二次元配列中に決まった間隔ではない、特定の大きさで、互いに接触しない1で識別された領域が存在するとします。この大きな配列から添付写真に示すような1で構成された3x3の像を初期の大きな像における位置関係を保持したまま、cell配列ないしは通常の配列変数としてfor loopを行わずに並び替えたいと考えています。
現時点で試したこととして、findや論理インデックスを利用して取り出す方法などを試していますが、この方法では1に対応する配列が列ごとに並び替えられて出力されてしまい、目的の形状に変形し保存が難しい状況にあります。結局やりたいこととしては、0に対応するすべての配列を削除し、残っている配列を位置関係を保持したまま結合させたいということです。
こちらのコードもforとifを利用して実装することはできるのですが、仮に何らかの0などの数値を除去する関数等があってループを使用せずに目的配列のデータが取得する事ができればすごく助かります。
ご不明な点が有ればコメントいただけると嬉しいです。よろしくお願いいたします。

Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Shifting and Sorting Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
