2014-09-05 105 views
1

在下面的代碼中,我想生成7個隨機起點。然後我想取這些起點並選擇矩陣Delta中與第一個隨機選擇的起點相對應的列號。然後我還包括該專欄之後的下列47列。然後我應該使用下一個隨機起點,從Delta中選擇相應的列,並再次包含以下47列。依此類推,直到所有隨機起點已被使用。無循環的隨機塊

問題是,當我使用下面的代碼它只適用於第一個隨機起點,並忽略其餘的?

這樣做可以不必循環?

LogData=log(data); 

Delta=diff(LogData,1,2); 

max_t=size(Delta,2); 

Start_YC=LogData(:,max_t); 

Urnd=randi(max_t,7,1); 

SRtns=Delta(:,Urnd:Urnd+47); 
+0

是否還好有循環迭代之間的重疊列? – Divakar 2014-09-05 18:16:52

+0

是的(可能不理想,但算法不禁止它) – Bazman 2014-09-05 18:51:05

+0

順便說一句你的循環在哪裏?你說你想用循環去掉,這是不可見的。 – Divakar 2014-09-05 18:59:56

回答

1

看看這個工程爲你 -

rand_start_pts = randperm(max_t-47,7) 
ind = bsxfun(@plus,rand_start_pts(:),0:47)' 
SRtns = Delta(:,ind(:))