我刚刚开始探索矢量化的世界。我得到了一维矢量化,但我在矢量化以下代码时遇到了麻烦。如果可能的话,我想取消至少一个 for 循环 b/c 我计划在更大的数据集上通过多次迭代使用它,因此节省计算时间至关重要。
CityPairs = [7 3
3 1
3 1
1 7
7 1
3 4
5 1
4 6];
Offices = [1;3;7];
nOffices = size(Offices,1);
connection = zeros(nOffices);
for i = 1:nOffices
for j = 1:nOffices
connection(i,j) = sum(Offices(i) == CityPairs(:,1)...
& CityPairs(:,2) == Offices(j));
end
end
disp(connection)
在本例中,有 7 个城市,其中 3 个设有办事处。我想要一个有办公室的城市的成对矩阵来捕获每个城市之间所有单向连接的总和。上述问题的答案应该是:
0 0 1
2 0 0
1 1 0
欢迎任何建议。提前致谢。
基思