Remove all zeros from a vector (preallocated unused spaces)

1 view (last 30 days)
So i am saving frobenius norm of an algorithm. Before that i made my preallocation as
RRE=zeros(1,5000);
After saving my RRE values for total simulation of 20, I get an array of this nature
[0.9808 0.488 0.0819 0.11491 0 0 0 0 0 0 0 ] up to 5000
I want to plot only last values so I do this
Last_RRE= RRE(end);
So instead of returning 0.11491 it returns 0. How to i make sure these zeroes are removed. I have to do this for 5 other alogrithms. so i cant make a loop to go through to the length and if statement to remove zeroes. looks tiring for all these methods. since the RRE's are unique for each algorithm and have different names. NB, the zeroes are not zero value RRE they are just 'unused' or null. i dont know how to call them.

Accepted Answer

madhan ravi
madhan ravi on 22 Oct 2018
RE = [0.9808 0.488 0.0819 0.11491 0 0 0 0 0 0 0 ]
nonzeros(RE) %removes zeros

More Answers (1)

Stephan
Stephan on 22 Oct 2018
Edited: Stephan on 22 Oct 2018
Hi,
build an example:
A=zeros(1,20)
A(1:10) = rand()
remove zeros:
A(A==0) = []
Best regards
Stephan

Categories

Find more on Performance and Memory in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!