Separate arrays within loop using indexing?
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Nicholas Kavouris
il 5 Apr 2022
Risposto: Walter Roberson
il 5 Apr 2022
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 Commenti
Risposta accettata
DGM
il 5 Apr 2022
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)
Più risposte (1)
Walter Roberson
il 5 Apr 2022
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 Commenti
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!