if condition picking certain day of week

1 view (last 30 days)
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

Answers (1)

KSSV
KSSV on 3 Aug 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 Comment
Dharma Khatiwada
Dharma Khatiwada on 4 Aug 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

Sign in to comment.

Categories

Find more on Dates and Time in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!