如題,如果有一個1*m的陣列A,我想求其中任兩個元素的差值之絕對值,
最簡單的應該就是用兩層迴圈去跑,但是因為陣列A比較大,所以跑起來很慢。
目前寫法:
B = zeros([1,(1+m)*m/2]);
idx = 1;
for i = 1:m-1
for j = 2:m
B(idx) = abs(A(i)-A(j));
idx = idx + 1;
end
end
例如:A = [1 2 3 4]; 則結果應為B = [1 2 3 1 2 1];
想請問matlab有內建的函式可以做到這件事嗎?
如果沒有的話,請問有沒有比較有效率的寫法呢?
--
家家是家,到家才是家~道道是道,放下見大道
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.27.132
→
07/11 15:39, , 1F
07/11 15:39, 1F
→
07/11 16:36, , 2F
07/11 16:36, 2F
→
07/11 16:37, , 3F
07/11 16:37, 3F
推
07/11 22:22, , 4F
07/11 22:22, 4F
→
07/11 22:23, , 5F
07/11 22:23, 5F
推
07/11 23:31, , 6F
07/11 23:31, 6F
→
07/13 23:50, , 7F
07/13 23:50, 7F