For elements in two arrays/columns of numbers, how can I find the average only if both elements are non-zero?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Srh Fwl
el 21 de Jul. de 2020
Comentada: Srh Fwl
el 21 de Jul. de 2020
I have many external files. Each file contains two long columns of numbers, like this:
1 2
11 12
6 48
9 0.0
3 0.5
I can read each file in. Now I want to calculate the average of each row. In the column of results, for example, the elements would be:
(1 + 2 / 2)
(11 + 12 / 2)
(6 + 48 / 2) ...
The problem is, I don't want to take the average of rows where one element is zero. For example, I want the row that has
9 0.0
to be "9." Does anyone know how I can do, "calculate the average of each row, but leave the row alone if one element is zero?" I'm using 2016a. Thank you for any advice.
0 comentarios
Respuesta aceptada
madhan ravi
el 21 de Jul. de 2020
matrix(matrix == 0) = nan
nanmean(matrix, 2)
5 comentarios
madhan ravi
el 21 de Jul. de 2020
cellfun(@(x) mean(x((x ~= 0) & (~isnan(x)))), num2cell(matrix, 2))
Más respuestas (0)
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!