Separate arrays within loop using indexing?
1 次查看(过去 30 天)
显示 更早的评论
I have matricies for start and stop time of system cycle. How can i iterate this over a raw dataset so that each loop produces a new matirix containing the points from start(i) to stop(i)?
start and stop will have equal elements but may have numel 1-20
if start has 5 elements loop will produce data.1-data.5
What im looking for:
ex start=[1,8]; stop=[7,11]
data=[2,2,2,3,3,4,4,2,3,4,4,2]
ans=
data.1=[2,2,2,3,3,4,4]
data.2=[2,3,4,4]
have tried:
for k=1:numel(start)
seperated_data(k)=data(start(k):stop(k))
end
0 个评论
采纳的回答
DGM
2022-4-5
You should just be able to use a cell array.
start = [1,8];
stop = [7,11];
data = [2,2,2,3,3,4,4,2,3,4,4,2];
% same thing, but with a cell array
seperated_data = cell(numel(start),1);
for k = 1:numel(start)
seperated_data{k}=data(start(k):stop(k));
end
% show the contents of the output
celldisp(seperated_data)
更多回答(1 个)
Walter Roberson
2022-4-5
start = [1,8];
stop = [7,11];
data = [2,2,2,3,3,4,4,2,3,4,4,2];
seperated_data = arrayfun(@(B,E) data(B:E), start, stop, 'uniform', 0)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!