Record every 12 values in a loop

1 次查看(过去 30 天)
Amy07
Amy07 2021-6-16
回答: Rik 2021-6-16
I have monthly data that I would like to group by year, so every 12 values.
I have created a loop:
for ii = 1:length(monthly)
years = monthly(1:12:end);
chl_years{ii} = years;
end
This records the 12th value for each year, when instead I need values 1-12 as one cell array, 13-24 as another, and so on.
I'm not sure what to change in order to do this. Thank you.

回答(1 个)

Rik
Rik 2021-6-16
Using a cell as an intermediate step is generally not efficient, but it tend to be easy to work with.
With that in mind: you can use mat2cell to split an array into groups of 12.
data=1:10;
k=2;
mat2cell(data,1,k*ones(1,numel(data)/k))
ans = 1×5 cell array
{[1 2]} {[3 4]} {[5 6]} {[7 8]} {[9 10]}

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by