5
我需要向量化以下代碼:比較不等長度的兩個矢量來獲得的邏輯陣列
a = [1 2 3 2 3 1];
b = [1 2 3];
for i = 1:length(a)
for j = 1:length(b)
r(i, j) = (a(i) == b(j));
end
end
的輸出r應該是一個邏輯陣列:
1 0 0
0 1 0
0 0 1
0 1 0
0 0 1
1 0 0
我可以得到最接近是:
for j = 1:length(b)
r(:, j) = (a == b(j));
end
迭代通過較短的向量顯然更有效,因爲它爲ite生成次數更少口糧。正確的解決方案應該沒有任何for-loops。
這是可能的MATLAB /八度?