if condition picking certain day of week

1 vue (au cours des 30 derniers jours)
Dharma Khatiwada
Dharma Khatiwada le 3 Août 2022
Commenté : Dharma Khatiwada le 4 Août 2022
Hi,
I am using a for loop using time as a variable. For day 1 (Monday) there is a value. Then I start a for loop starting from 4th day (Thursday). I want to use for loop only on Day 1(Monday) and Day 4 (Thursday) of every week for 40 weeks. This is related to a situation in radiation treatment where the radiation is given every Monday and Thursday.
I am using following script for 'for loop' which is obviously not true for my above situation. Any help will be appreciated.
Thanks
Dharma
syms x t
c2(x) = 2*dirac(x-1);%day 1
for j=4:4:40 %needs some modification
c2(x) = c2(x)+2*dirac(x-j);
end

Réponses (1)

KSSV
KSSV le 3 Août 2022
thedates = (datetime(2022,01,1):datetime(2022,1,31))';
d = day(thedates,'name') ;
idx = ismember(d,{'Monday','Thursday'}) ;
d(idx)
ans = 9×1 cell array
{'Monday' } {'Thursday'} {'Monday' } {'Thursday'} {'Monday' } {'Thursday'} {'Monday' } {'Thursday'} {'Monday' }
find(idx)
ans = 9×1
3 6 10 13 17 20 24 27 31
  1 commentaire
Dharma Khatiwada
Dharma Khatiwada le 4 Août 2022
Thank you KSSV,
As a beginner, I am still having difficulty to implement your idea in my code.
Could you help me to clarify further?
How do I use idx in place of j of following code? I want to see the j picking mondays, thursdays as a number and the maximum I want to go is upto 40 times. For example, if I count from tomorrow (thursday) as 1 then coming monday (second),..........upto 40 i.e. a total of 40 Monday plus Thursday.
syms x t
c2(x) = 2*dirac(x-1);%day 1
for j=4:4:40 %needs some modification
c2(x) = c2(x)+2*dirac(x-j);
end

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by