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)1if X(m,n) == X(p,q)0否则。

于 2013-11-14T21:51:04.703 回答