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 |