Collect only non-zero elements of a 3x3xN matrix

3 visualizaciones (últimos 30 días)
Marco
Marco el 18 de En. de 2013
Hi,
I've a symbolic 3x3xN (with N variable) matrix I with some non-zero elements, like:
I(:,:,1) =
[ 0, 0, 0]
[ 0, 0, 0]
[ 0, 0, Il1]
I(:,:,2) =
[ 0, 0, 0]
[ 0, 0, 0]
[ 0, 0, Il2]
and I want to collect them into an array, but when I try:
[m,v]=find(I~=0)
it returns indices like m=3 v=9. How can I find them from the 3-D matrix and collect them into an array ?

Respuesta aceptada

Image Analyst
Image Analyst el 18 de En. de 2013
Editada: Image Analyst el 18 de En. de 2013
You simply extract them, like this:
nonZeroElements = I(I~=0);
That gives you a big long vector of all the array values that are not zero, in row major order.

Más respuestas (1)

Matt J
Matt J el 18 de En. de 2013
I don't have the Symbolic Math Toolbox, but you could try the NONZEROS command. Don't know if it's overloaded for type sym.
  1 comentario
Marco
Marco el 18 de En. de 2013
I tried it but it returns:
Undefined function 'nonzeros' for input arguments of type 'sym'.

Iniciar sesión para comentar.

Categorías

Más información sobre Symbolic Math Toolbox en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by