Matlab: Como vetorizar um loop aninhado em um conjunto 2D de vetores

Eu tenho uma função da seguinte forma:

function Out = DecideIfAPixelIsWithinAnEllipsoidalClass(pixel,means,VarianceCovarianceMatrix)  
   ellipsoid = (pixel-means)'*(VarianceCovarianceMatrix^(-1))*(pixel-means);  
   if ellipsoid <= 1
      Out = 1;
   else
      Out = 0;
   end
end  

Eu estou fazendo processos de sensoriamento remoto com matlab e eu quero classificar um LandSatTM imagens.Esta imagem tem 7 bandas e é 2048 * 2048.Então eu os armazenei em 3 dimentinal 2048 * 2048 * 7 matrix.in esta função significa é um 7 * 1 matriz calculada anteriormente usando a amostra da classe em uma função chamada ExtractStatisticalParameters e VarianceCovarianceMatrix é uma matriz 7 * 7, de fato, você vê que:

ellipsoid = (pixel-means)'*(VarianceCovarianceMatrix^(-1))*(pixel-means);  

é a equação de um elipsóide.Meu problema é que cada vez que você pode passar um único pixel (é um vetor 7 * 1, onde cada linha é o valor do pixel em uma banda separada) para esta função, então eu preciso escrever um loop como este:

for k1=1:2048  
   for k2=1:2048  
      pixel(:,1)=image(k1,k2,:); 
      Out = DecideIfAPixelIsWithinAnEllipsoidalClass(pixel,means,VarianceCovarianceMatrix);  
   end  
end  

e você sabe que vai demorar muito tempo e energia do sistema.Você pode me sugerir uma maneira de reduzir a pressão aplicada no sistema?

questionAnswers(1)

yourAnswerToTheQuestion