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
如果有5个元素开始s 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:
fork=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);
fork = 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
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!