Remove zero padding in the vector which has element 0

3 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Stephen23
Stephen23 il 4 Feb 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

Più risposte (1)

Star Strider
Star Strider il 4 Feb 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 Commenti
Tan
Tan il 5 Feb 2017
I just know there is a padding such as that. I've tried and it worked. Thank you Star Strider for telling me:)

Accedi per commentare.

Categorie

Scopri di più su Operators and Elementary Operations in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by