說我有一個數組大小100x150x30,地理網格100x150 30個值爲每個網格點,並希望找到沿着第三維連續元素具有最小3.查找3D陣列的連續值
一個諧調感長度我想找到連續元素塊的最大長度,以及出現的次數。
我已經試過這一個簡單的載體:
var=[20 21 50 70 90 91 92 93];
a=diff(var);
q = diff([0 a 0] == 1);
v = find(q == -1) - find(q == 1);
v = v+1;
v2 = v(v>3);
v3 = max(v2); % maximum length: 4
z = numel(v2); % number: 1
現在我想將其應用到我的陣列的第三維。
隨着A
被我100x150x30陣列,我已經走到這一步:
aa = diff(A, 1, 3);
b1 = diff((aa == 1),1,3);
b2 = zeros(100,150,1);
qq = cat(3,b2,b1,b2);
但是我卡在下一步,這將是:find(qq == -1) - find(qq == 1);
。我無法讓它工作。
有沒有辦法把它放在一個循環中,還是我必須以另一種方式找到連續的值?
感謝您的幫助!
我等着你來偷接受離我:P – Adriaan
@Adriaan OP是尋找一個糊塗的解決它似乎,所以我想你反正是安全的! ;) – Divakar
當'bsxfun'軍隊來臨時,沒有迴路是安全的。更別說兩個循環。你的解決方案顯然要快得多 – Adriaan