# Working with for loop

3 views (last 30 days)
Tania Islam on 6 Jul 2020
Commented: Tania Islam on 7 Jul 2020
Hi,
In my following code I want my final result ( final_delay) without skipping any index. Currently it skipping 4 index because of this line (i_value= 1:4:len). But I dont want to skip this index for my final result. How can I do that.
Thank you so much for your time and considerations.
data1=rand(1,1000)
data2=rand(1,1000)
data3=rand(1,1000)
len=200;
time=zeros(1,len)
trigger=3
for i_value= 1:4:len
delay1=data1(i_value)
delay2=data1(i_value+1)
delay_1=(delay1+delay2)/2
delay3=data2(i_value)
delay4=data2(i_value+1)
delay_2=(delay3+delay4)/2
RTT_1=data2(i_value+2)+data3(i_value)+data1(i_value+2)
final_delay(i_value)= abs(RTT_1-delay_1-delay_2)
end

Tania Islam on 6 Jul 2020
In the picture, this is my final result. But here its skipping 3 index as zero, but I want to keep that values. How can I do that?
madhan ravi on 6 Jul 2020
Yet again you forgot to attach how the expected result should look like. Paste it as a text , screenshot is not useful.
Tania Islam on 6 Jul 2020
Thank you so much for your time to consider this problem. I think I am close to my answer by @Matt J.

Matt J on 6 Jul 2020
Edited: Matt J on 6 Jul 2020
I_values=1:4:len;
final_delay=nan(1,numel(I_values)); %PRE-ALLOCATE!!!!!!
for k=1:numel(I_values)
i_value=I_values(k);% Matt J inserted
delay1=data1(i_value)
delay2=data1(i_value+1)
delay_1=(delay1+delay2)/2
delay3=data2(i_value)
delay4=data2(i_value+1)
delay_2=(delay3+delay4)/2
RTT_1=data2(i_value+2)+data3(i_value)+data1(i_value+2)
final_delay(k)= abs(RTT_1-delay_1-delay_2) %Matt J edited
end

Tania Islam on 6 Jul 2020
Thank you so much, yes, I want this. We are deleting the null index, right?
Matt J on 6 Jul 2020
We are not deleting anything, just filling a smaller vector.
Tania Islam on 7 Jul 2020
Thank you so much