MATLAB: Working with for loop

for loop

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

Best Answer

  • 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