randvar=cell(50,1);for h=1:50 randvar{h}=zeros(10,4); randvar{h}(:,1)=randi(10,10,1); randvar{h}(:,2)=randi(5,10,1); randvar{h}(:,3)=randi(10,10,1); randvar{h}(:,4)=randi(17,10,1); endfor counter=1:15 for h=1:50 a{h}=0; for i=1:10 for j=1:10-i if randvar{h}(i,1) ~= randvar{h}(i+j,1) if randvar{h}(i,2)==randvar{h}(i+j,2) if randvar{h}(i,3)==randvar{h}(i+j,3) if randvar{h}(i,4)==randvar{h}(i+j,4) a{h}=a{h}+10; else a{h}=a{h}+0; end end end end end end endend[B, IX] = sortrows(a);least = randvar(IX(1:10));
I don't quite understand why the IX returns 1. Shouldn't it return all the index of the cell array elements? I want to retrieve the first 10 least value for a for randvar.
P/S: My code works when I'm using cell2mat but because there're many loops, converting from cell2mat and mat2cell doesn't seem to be efficient.
Best Answer