2014-09-22 143 views
0

我可以很容易地做到这一点,但我试图做Mathematica。我有27000个元素(每秒15分钟* 30次测量)风速值列表。我想在每个2700个元素(90秒)范围内找到最大值并将其输出到一个矢量。下面是MATLAB代码:如何在Mathematica中的每个列表中找到最大值?

N = length(AlongWS); 
SegTime = 90; 
NSeg = (N/30)/90; 
Max90 = zeros(NSeg,1); 
Incr = N/NSeg; 
for i = 1:NSeg 
    Max90(i,1) = max(AlongWS((i-1)*Incr+1:(i*Incr),1)); 
end 

这里是我已经输入了数学:

N = Length[AlongWS] 
SegTime = 90 
NSeg = (N/30)*60/SegTime 
Max90 = {} 
Incr = N/NSeg 
For[ 
    i = 1, i < NDiv + 1, i++, 
    maxWS[[i]] = Max[AlongWS[[(i - 1)*Incr + 1 ;; (i*Incr)]]] 
] 

回答

1

试试这个:

Max /@ Partition[AlongWS, 2700] 

该分区AlongWS到长度2700的子列表,然后在子列表上映射Max[],产生每个2700个元素范围的最大值列表。

相关问题