私はかなり大きな行列Mを持っていて、いくつかの列にしか興味がありません。Vの値が1対象の列を表すブールベクトルがあります。例:
-1 -1 -1 7 7 -1 -1 -1 7 7 7
M = -1 -1 7 7 7 -1 -1 7 7 7 7
-1 -1 7 7 7 -1 -1 -1 7 7 -1
V = 0 0 1 1 1 0 0 1 1 1 1
の複数の隣接する値Vがすべて1である場合、の対応する列Mを別のマトリックスに抽出する必要があります。これは、前の行列を使用した例です。
-1 7 7 -1 7 7 7
M1 = 7 7 7 M2 = 7 7 7 7
7 7 7 -1 7 7 -1
どうすればこれを効率的に行うことができますか?行列のこれらすべての部分をMセル配列に格納するか、少なくとも次々にそれらを生成する効率的な方法が必要です。現在、これをwhileループで実行していますが、思ったほど効率的ではありません。
(私の例には値のみが含まれており、わかりやすくするために注意してください-1。7これは、私が使用する実際のデータではありません。)