私はかなり大きな行列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
これは、私が使用する実際のデータではありません。)