Delete zeros form multiple columns in a matrix
2 views (last 30 days)
Show older comments
How do I reduce a matrix with multiple initial zeros
A=[0 0 0 0 0 ; 0 0 0 0 1 ; 0 0 1 0 1 ; 0 1 1 0 1 ; 0 1 1 1 1; 1 1 1 1 1; 1 1 1 1 1 ]
to
A = [1 1 1 1 1
1 1 1 1 1
1 1 1 1
1 1 1
1 1
1]
Basically delete all zero from all the column
0 Comments
Answers (2)
the cyclist
on 8 May 2021
A numeric data type cannot have empty elements.
You have a couple options. You could use a cell array, which can have empty elements. Or perhaps you could replace the zeros with NaN.
What are you planning on doing as a next step with the result?
2 Comments
DGM
on 9 May 2021
If you don't want zeros to plot, just replace them with NaN. NaN values don't plot.
For actual handling of electrical signal data, I can't imagine a scenario where zeros are categorically meaningless. If you're running into problems in further calculations, I doubt that stripping all zeros is the appropriate solution.
Image Analyst
on 8 May 2021
I agree with the cyclist in that you probably don't really need to do this in your next step, whatever it is.
That said, you can use sparse() but I really, really doubt you want to, or need to, do that.
If you just want to print it out to the command line, you can use a loop with fprintf() and just print those that are 1 and print a space for the zeros.
But a matrix cannot have "holes" or "ragged edges". There has to be something there.
2 Comments
Image Analyst
on 8 May 2021
How are you going to do that? And how will that solve the "problem"? Again, I don't know why there is a "problem" in the first place and you can't just use your original A matrix.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!