MATLAB Answers

simple loop option to reduce code

1 view (last 30 days)
Rashmil Dahanayake
Rashmil Dahanayake on 10 Dec 2013
Edited: Andrei Bobrov on 10 Dec 2013
Hi, Can anyone suggest a neat way to simply the following code.
T=0.25;
t1=-3*T/12:.001:T/12;
t2=t1(end):.001: t1(end) + T/3;
t3=t2(end):.001: t2(end) + T/3;
t4=t3(end):.001: t3(end) + T/3;
t5=t4(end):.001: t4(end) + T/3;
t6=t5(end):.001: t5(end) + T/3;
---------------------------------------------------
I'm intending to use a for loop as follow but, I'm getting an error message
for r=2:6
t(r)=t(r-1)(end):t1(end):.001: t(r-1)(end) + T/3;
end

  0 Comments

Sign in to comment.

Accepted Answer

kei hin
kei hin on 10 Dec 2013
T=0.25;
t{1}=-3*T/12:.001:T/12;
for r=2:6
t{r} = t{r-1}(end):.001: t{r-1}(end) + T/3;
end

  1 Comment

Rashmil Dahanayake
Rashmil Dahanayake on 10 Dec 2013
Thanks. ^Cell array option is more concise

Sign in to comment.

More Answers (2)

Rashmil Dahanayake
Rashmil Dahanayake on 10 Dec 2013
Edited: Rashmil Dahanayake on 10 Dec 2013
figured it out
T=0.25;
t1=-3*T/12:.001:T/12;
Time(1,:)=t1;
for r=2:6
Time(r,:)=Time((r-1),end):.001: Time((r-1),end) + T/3;
end

  0 Comments

Sign in to comment.


Andrei Bobrov
Andrei Bobrov on 10 Dec 2013
Edited: Andrei Bobrov on 10 Dec 2013
T = .25;
n = 6;
tt = -3*T/12:.001:T/12;
Time1 = bsxfun(@plus,tt,diff(tt([1,end]))*(0:n-1)');

  0 Comments

Sign in to comment.

Sign in to answer this question.