matlab中for循环内嵌套if语句无法得到正确输出

想要通过for和if循环从已经生成的颜色数组中按照条件生成两个新的颜色数组,但是最后输出的两个数组discolor1和discolor2还是原来的zeros(180,3)的样子,想知道我的代码到底是哪里出了问题呢?代码中的randIndexList1是一个已经存在的(180,3)条件数组。
代码如下(可能比较繁冗)

a=zeros(180,1);
cuecolor=zeros(180,3);
discolor1=zeros(180,3);
discolor2=zeros(180,3);
for i=1:180

a(i)=randperm(360,1); 

cuecolor(i,:)=color_seq(a(i),:);

if randIndexList1(i:2)==1

    if randIndexList1(i:3)==1
        discolor1(i,:)=cuecolor(i,:);  
        discolor2(i,:)=cuecolor(i,:); 
    
    elseif randIndexList1(i:3)==2
         if a(i)<4
            discolor1(i,:)=color_seq(a(i)-3+359,:);
            discolor2(i,:)=color_seq(a(i)+3,:);
        else 
            discolor1(i,:)=color_seq(a(i)-3,:);
            discolor2(i,:)=color_seq(a(i)+3,:);
         end

    elseif randIndexList1(i:3)==3
        if a(i)<6
            discolor1(i,:)=color_seq(a(i)-5+359,:);
            discolor2(i,:)=color_seq(a(i)+5,:);
        else 
            discolor1(i,:)=color_seq(a(i)-5,:);
            discolor2(i,:)=color_seq(a(i)+5,:);
        end         

    elseif randIndexList1(i:3)==4
        if a(i)<7
            discolor1(i,:)=color_seq(a(i)-6+359,:);
            discolor2(i,:)=color_seq(a(i)+6,:);
        else 
            discolor1(i,:)=color_seq(a(i)-6,:);
            discolor2(i,:)=color_seq(a(i)+6,:);
        end         

    elseif randIndexList1(i:3)==5
        if a(i)<8
            discolor1(i,:)=color_seq(a(i)-7+359,:);
            discolor2(i,:)=color_seq(a(i)+7,:);
        else 
            discolor1(i,:)=color_seq(a(i)-7,:);
            discolor2(i,:)=color_seq(a(i)+7,:);
        end         

    else 
        if a(i)<10
            discolor1(i,:)=color_seq(a(i)-9+359,:);
            discolor2(i,:)=color_seq(a(i)+9,:);
        else 
            discolor1(i,:)=color_seq(a(i)-9,:);
            discolor2(i,:)=color_seq(a(i)+9,:);
        end          
    end

elseif randIndexList1(i:2)==2
    if randIndexList1(i:3)==1
        discolor1(i,:)=cuecolor(i,:);  
        discolor2(i,:)=cuecolor(i,:);
        
    elseif randIndexList1(i:3)==2
        if a(i)<9
            discolor1(i,:)=color_seq(a(i)-8+359,:);
            discolor2(i,:)=color_seq(a(i)-13+359,:);
        elseif 9<a(i) &&a(i)<14 
            discolor1(i,:)=color_seq(a(i)-8,:);
            discolor2(i,:)=color_seq(a(i)-13+359,:);
        else
            discolor1(i,:)=color_seq(a(i)-8,:);
            discolor2(i,:)=color_seq(a(i)-13,:);
        end
       
    elseif randIndexList1(i:3)==3
        if a(i)<9
            discolor1(i,:)=color_seq(a(i)-8+359,:);
            discolor2(i,:)=color_seq(a(i)-13+359,:);
        elseif 9<a(i) &&a(i)<18 
            discolor1(i,:)=color_seq(a(i)-8,:);
            discolor2(i,:)=color_seq(a(i)-17+359,:);
        else
            discolor1(i,:)=color_seq(a(i)-8,:);
            discolor2(i,:)=color_seq(a(i)-17,:);
        end
      
    elseif randIndexList1(i:3)==4
        if a(i)<9
            discolor1(i,:)=color_seq(a(i)-8+359,:);
            discolor2(i,:)=color_seq(a(i)-19+359,:);
        elseif 9<a(i) &&a(i)<20 
            discolor1(i,:)=color_seq(a(i)-8,:);
            discolor2(i,:)=color_seq(a(i)-19+359,:);
        else
            discolor1(i,:)=color_seq(a(i)-8,:);
            discolor2(i,:)=color_seq(a(i)-19,:);
        end
      
    elseif randIndexList1(i:3)==5
        if a(i)<9
            discolor1(i,:)=color_seq(a(i)-8+359,:);
            discolor2(i,:)=color_seq(a(i)-21+359,:);
        elseif 9<a(i) && a(i)<22
            discolor1(i,:)=color_seq(a(i)-8,:);
            discolor2(i,:)=color_seq(a(i)-21+359,:);
        else
            discolor1(i,:)=color_seq(a(i)-8,:);
            discdolor2(i,:)=color_seq(a(i)-21,:);
        end
      
    else
        if a(i)<9
            discolor1(i,:)=color_seq(a(i)-8+359,:);
            discolor2(i,:)=color_seq(a(i)-25+359,:);
        elseif 9<a(i) &&a(i)<26 
            discolor1(i,:)=color_seq(a(i)-8,:);
            discolor2(i,:)=color_seq(a(i)-25+359,:);
        else
            discolor1(i,:)=color_seq(a(i)-8,:);
            discolor2(i,:)=color_seq(a(i)-25,:);
        end
    end
end

end

randIndexList1未定义

我好像已经搞明白了为什么了,是因为我打代码的格式不太正确,如(i,:)我错打成了(i:0)。然后第一个条件下我没有考虑到当a抽取成360(之类)的时候,discolor2想取的a+数字会超过范围而报错