Arrays Matlab数组元素的调用组

Arrays Matlab数组元素的调用组,arrays,matlab,Arrays,Matlab,我在Matlab中处理长时间的每日时间序列,运行时间超过30-100年。我一直想开始按季节来观察它,在这段时间内,通过每年91天的时间段(使用一些tbd方法来校正一年中的奇数天)大致接近这一点 基本上,我想要的是一个数组索引方法,它允许我创建一个新的数组,它从元素1开始,每365个元素就需要91个元素。我一直在寻找一些普通的数组方法(一些(:)或其他),但我还没有找到。我想另一种选择是在365天的时间段上迭代91次,但这似乎不必要的复杂 有没有我错过的更简单的方法? 提前感谢您的帮助 如果我理解

我在Matlab中处理长时间的每日时间序列,运行时间超过30-100年。我一直想开始按季节来观察它,在这段时间内,通过每年91天的时间段(使用一些tbd方法来校正一年中的奇数天)大致接近这一点

基本上,我想要的是一个数组索引方法,它允许我创建一个新的数组,它从元素1开始,每365个元素就需要91个元素。我一直在寻找一些普通的数组方法(一些(:)或其他),但我还没有找到。我想另一种选择是在365天的时间段上迭代91次,但这似乎不必要的复杂

有没有我错过的更简单的方法?
提前感谢您的帮助

如果我理解正确,您想提取元素1-91、366-457、731-822等等?我不确定是否有一种方法可以通过基本矩阵索引实现这一点,但您可以执行以下操作:

days = 1:365;  %Create array ranging from 1 - 365
difference = length(data) - 365;    %how much bigger is time series data?
padded = padarray(days, [0, difference], 'circular'); %extend to fit time series
extracted = data(padded <= 91); %get every element in the range 1-91
填充的
则等于
[1,2,3,4,5,1,2,3,4,5]
,而
提取的
将是
[1,2,6,7]

x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
days = 1:5;
difference = length(x) - 5;
padded = padarray(days, [0, difference], 'circular');
extracted = x(padded <= 2);