0

配列ZAbsのすべての要素について、配列自体のすべての要素と等しいかどうかを比較し、それらを別の異なる配列に入れたいと思います。個別の配列の要素が ZAbs 配列と同じインデックスを持つようにします。

これを行うには、ネストされた 4 つの for ループを作成します。

for pAbs2 = 1:400

    for qAbs2 = 1:300

        zAbsCompare = ZAbs(qAbs2, pAbs2);

        for pAbs3 = 1:400

            for qAbs3 = 1:300

                zAbsCompare2 = ZAbs(qAbs3, pAbs3);

                if (zAbsCompare == zAbsCompare2)

                    InitialZModEqualsImag(pAbs2,qAbs2) = InitialZImag(qAbs2, pAbs2);
                    InitialZModEqualsReal(pAbs2,qAbs2) = InitialZReal(qAbs2, pAbs2);

                end

            end

        end

    end

end

ただし、これは非常にゆっくりと実行されます。これを行うためのより良い方法は考えられませんが、MATLAB の経験が浅いため、おそらくここで見落としていることがあります。何か助けはありますか?

編集:エラーを修正し、質問を再表明しました。

4

1 に答える 1

1

次の方法で効率的に比較を行うことができます(それがあなたが望むものかどうかはわかりません)bsxfun

comp = bsxfun(@eq, X, shiftdim(X,-2));

結果comp(m,n,p,q)1ifX(m,n) == X(p,q)であり、0そうでない場合です。

于 2013-11-14T21:51:04.703 に答える