dimanche 31 mai 2015

Problems with matrix indexing using for loop and if condition

I to do some indexing, something like what follows:

for c=1:size(params,1)
    for d=1:size(data,2)
        if params(c,8)==1
            value1(c,d)=data(params(c,11),d);
        elseif params(c,8)==2
            value2(c,d)=data(params(c,11),d);
        elseif params(c,8)==3
            value3(c,d)=data(params(c,11),d);
        end
    end
end

The problems with this is that if we have params(:,8)=1,3,1,3,2,3,1... then value1 will contain all zeros in rows 2, 4, 5, 6, etc. These are the rows that do not have 1 in column 8 in params. Similarly, value2 will contains all zeros in rows 1, 2, 3, 4, 6, 7... and value3 will contain all zeros in row 1, 3, 5, 7, .... Could anyone tell me how to index so I don't have 'gaps' of zeros in between rows? Thanks!

Aucun commentaire:

Enregistrer un commentaire