我希望,对于数组ZAbs的每个元素,将它与数组本身的每个元素进行相等性比较,并将它们放入另一个不同的数组中。我希望distinct数组的元素与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缺乏经验,我可能会忽视这里的一些东西。有什么帮助吗?
编辑:修正了错误并重述了问题。
答案 0 :(得分:1)
您可以使用bsxfun
进行比较(不确定是您想要的):
comp = bsxfun(@eq, X, shiftdim(X,-2));
如果comp(m,n,p,q)
,结果1
为X(m,n) == X(p,q)
,否则为0
。