【发布时间】:2021-07-17 08:00:12
【问题描述】:
我有三个矩阵,A 是 2 x 3,B 是 2 x 5,Index 是 3 x 5。
A = [1,3,5;2,4,6];
B = [5,3,3,5,3;6,4,4,6,4];
Index = logical([0,0,0,0,1;0,1,1,0,0;1,0,0,1,0]);
我正在尝试查看 B 中的每个列向量是否与索引找到的 A 中的正确列向量匹配。我的代码如下。
error = 0;
for i = 1:size(B,2)
if A(:,Index(:,i)) ~= B(:,i)
error = error + 1;
end
end
error 在此循环结束时将为 1,因为 B 中的最后一列应该是 [1;2]。我的问题是B 和Index 的长度非常大(10^6),这变得非常慢。有没有办法可以避免 for 循环或者我注定要失败?
【问题讨论】:
标签: matlab for-loop optimization