matlabを使っていて、たまに「hoge列の値が正の行を取ってくる」とかいう操作をしたくなる時がある。 これくらいの要望だったらif文を書いてもいいのだけど、個人的にmatlabでは不要な所ではfor文を使いたくないし、 「hoge列目の値がhugeで、homu列の値がhamuの行」とかなってくるとコードがすごい汚くなってくる。 そこでmatlabの便利機能に論理インデックスというのがあり、今回はそれを用いた行抽出プログラムをメモ。 例 matrixの一列目がindex1で、二列目がindex2である行の抽出 logIndex1 = (matrix(:,1) == index1) & (matrix(:,2) == index2); //論理インデックスの種を作る。 logIndex2 = repmat(logIndex1, 1, COL_NUM) // COL_NUMはmatrixの行