Remove zero padding in the vector which has element 0

4 visualizaciones (últimos 30 días)
Tan
Tan el 4 de Feb. de 2017
Comentada: Star Strider el 5 de Feb. de 2017
I have vector A=[1 36 28 95 64 125 44 96 93 21 67 126 59 25 117 0 84 9 6] and then padded with zero until the length multiple of 3. So the newA=[1 36 28 95 64 125 44 96 93 21 67 126 59 25 117 0 84 9 6 0 0]. It is possible to remove zero padding? Because if i used nonzeros, the element 0 of A removed too. The number of elements A vector can not be ascertained

Respuesta aceptada

Stephen23
Stephen23 el 4 de Feb. de 2017
You can use find for this:
>> newA = [1,36,28,95,64,125,44,96,93,21,67,126,59,25,117,0,84,9,6,0,0]
newA =
1 36 28 95 64 125 44 96 93 21 67 126 59 25 117 0 84 9 6 0 0
>> B = newA(1:find(newA,1,'last'))
B =
1 36 28 95 64 125 44 96 93 21 67 126 59 25 117 0 84 9 6
  1 comentario
Tan
Tan el 5 de Feb. de 2017
Editada: Tan el 5 de Feb. de 2017
It worked! Thank you Stephen for telling me:)

Iniciar sesión para comentar.

Más respuestas (1)

Star Strider
Star Strider el 4 de Feb. de 2017
Using eps (or some other small number) to replace either your original zero or the padded zeros will work also, and not interfere with your calculations with them:
A=[1 36 28 95 64 125 44 96 93 21 67 126 59 25 117 0 84 9 6];
newA=[1 36 28 95 64 125 44 96 93 21 67 126 59 25 117 0 84 9 6 eps eps];
OriginalA = newA(A ~= eps)
  2 comentarios
Tan
Tan el 5 de Feb. de 2017
I just know there is a padding such as that. I've tried and it worked. Thank you Star Strider for telling me:)

Iniciar sesión para comentar.

Categorías

Más información sobre Operators and Elementary Operations 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!

Translated by