How to repeat something for multiple range of intervals?

2 vues (au cours des 30 derniers jours)
Thanathip Boonmee
Thanathip Boonmee le 20 Avr 2020
How do I do this without repeating it multiple times?
for i = 1:359
do something
end
for i = 1+(1440*1):359+(1440*1)
do something
end
for i =1+(1440*2):359+(1440*2)
do something
end
.
.
.
for i =1+(1440*27):359+(1440*27)
do something
end
  4 commentaires
Tommy
Tommy le 20 Avr 2020
Modifié(e) : Tommy le 20 Avr 2020
Possibly this?
idx = [1:359 1+(1440*1):359+(1440*1) 1+(1440*2):359+(1440*2) 1+(1440*27):359+(1440*27)];
for i = idx
%do something
end
(edit) Ah I completely missed the dots...
Thanathip Boonmee
Thanathip Boonmee le 20 Avr 2020
Thank sir! But I will use Ameer Hamza's answer so I dont have to copy-paste 27 times! Appreciate it anyway!

Connectez-vous pour commenter.

Réponse acceptée

Ameer Hamza
Ameer Hamza le 20 Avr 2020
Modifié(e) : Ameer Hamza le 20 Avr 2020
Extending the method suggested by Tommy, instead of writing each set manually, you can use this
idx = (1:359).' + (0:1440:1440*27);
idx = idx(:);
for i = idx
% do something
end
For versions older then R2016b
idx = bsxfun(@plus, (1:359).', (0:1440:1440*2));
idx = idx(:);
  2 commentaires
Thanathip Boonmee
Thanathip Boonmee le 20 Avr 2020
Thank you so much!
Ameer Hamza
Ameer Hamza le 20 Avr 2020
I am glad to be of help.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by