La Web del Programador: Comunidad de Programadores
 
    Pregunta:  58249 - PROGRAMAR EN MATLAB PARA CALCULAR MEDIA ENTRE 3 MATRICES
Autor:  Jocelyn Esquivel
Necesito calcular media aritmetica entre 3 matrices correspondientes a imagenes satelitales de distintas fechas. Lo complejo es que aparte de calcular la media entre el valor de cada pixel para 3 fechas distintas, necesito que cuando no haya valor en un pixel no se considere para el calculo, es decir que calcule entre los 2 valores restantes y que si hay solo un valor, considere ese valor como resultante.

  Respuesta:  Alejandro Solans
No se en qué forma te llegan los datos, supongo que tendrás algo como matriz A, B y C.
Suponiendo que no tener valor sería un cero, poner el if con ==0, sino pondría if isempty (para detectar conjuntos vacíos).

for 1 : max(x)

if A(x) == 0 & B(x) == 0 & C(x) == 0

disp('No hay valores en la medida' num2str(x))

elseif A(x) == 0

if B(x) == 0
valor(x) = C(x);
elseif C(x) == 0
valor(x) = B(x);
else
valor(x) = (B(x) + C(x)) / 2;
end

elseif B(x) == 0

if A(x) == 0
valor(x) = C(x);
elseif C(x) == 0
valor(x) = A(x);
else
valor(x) = (A(x) + C(x)) / 2;
end

elseif C(x) == 0

if A(x) == 0
valor(x) = B(x);
elseif B(x) == 0
valor(x) = A(x);
else
valor(x) = (A(x) + B(x)) / 2;
end

else
valor(x) = (A(x) + B(x) + C(x)) / 3;

end