2014-09-05 92 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(:))