Estoy tratando de encontrar una matriz 2D que represente los valores mínimos de la 3ª dimensión en una matriz 3D., P.Encuentre el valor mínimo distinto de cero en una matriz
a = floor(rand(10,10,3).*100); % representative structure
b = min(a,[],3); % this finds the minimum but also includes 0
He intentado utilizar:
min(a(a>0),3)
pero eso no es correcto? Supongo que podría ordenar la tercera dimensión de a y luego encontrar el mínimo dentro de 1: profundidad-1, pero ¿no parece la forma más eficiente?
¿Alguna idea?
Tenga en cuenta que si se ordena, el mínimo es el segundo (índice 1 si los índices de Matlab de 0) elemento, que no tienen que encontrar el mínimo de '1: depth-1' más. Pero sí, eso sigue siendo ineficiente y tiene que haber una mejor manera. – IVlad
Debería ser 'min (a, [], 3)', de lo contrario tomaría el más pequeño de 'a' y 3 – Jonas
Gracias por señalar a ese tipo de error Jonas, lo he corregido ahora. – trican