2012-10-25 103 views
2

我有以下代碼,其中d是尺寸94x290矩陣:切片矩陣matlab的無環路

samples=268; 
dim_cov=23; 
for q=1:samples 
    D(:,q)=(sum(d(:,q+(1:dim_cov)-1),2)); 
end 

有沒有辦法做到這一點沒有一個循環?

+1

有點偏離主題,但是'q + dim_cov'超出'd'(268 + 31 = 299)中的行數。 –

+0

嗨,對不起!我的錯誤dim_cov它是23 – Donaldo84

回答

0

這是行不通的嗎?

dim_cov = 23; 
cs = [zeros(size(d,1), 1) cumsum(d, 2)]; 
result = cs(:,1+dim_cov:end) - cs(:,1:end-dim_cov); 
+0

你好我有不同的結果,如果我嘗試你的代碼,從數組結果的大小開始,它的大小必須是94x268 – Donaldo84

+0

..我寫了dim_cov = 31,但是dim_cov = 23 ; – Donaldo84