0
A=[a_1 a_2 a_3 ... a_n]
如何使這個?
[a1 ... a100]
[a2 ... a101]
...
[an-100+1 ... an]
我想在這裏不使用for循環,因爲我想加快它。 謝謝。
A=[a_1 a_2 a_3 ... a_n]
如何使這個?
[a1 ... a100]
[a2 ... a101]
...
[an-100+1 ... an]
我想在這裏不使用for循環,因爲我想加快它。 謝謝。
您可以使用:
n = numel(A);
m = 100;
I = bsxfun(@plus, 1:m, (0:n-m).');
B = A(I);
一點題外話:在for
循環不執行是不好:
B = zeros(n-m+1, m);
for i = 1:size(B)
B(i,:) = A(i:i+m-1);
end
至於我的測試中去,它只能通過比較慢因子4,這個計算不應該是你程序中的瓶頸。
看來你只是在這裏處理重塑,所以爲什麼不做'重塑(A,100,[])。'? – Divakar
@Divakar事實上它並沒有被重塑。第一行和第二行之間有重疊。 – k99731
啊,是的,沒錯! – Divakar