我可以在MATLAB中轻松完成这项任务,但我正在尝试使用Mathematica。我有一个27000元素(每秒15分钟* 30次测量)的风速值列表。我想在每个2700元素(90秒)范围内找到最大值并将其输出到矢量。这是MATLAB代码:
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
以下是我在Mathematica中输入的内容:
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)]]]
]
答案 0 :(得分:1)
试试这个:
Max /@ Partition[AlongWS, 2700]
这将AlongWS划分为长度为2700的子列表,然后在子列表中映射Max[]
,生成每个2700元素范围的最大值列表。