This is my code:
N=3;
x=randi(9,3,N)
func = @(index)bsxfun(@minus,x(:,1:N),x(:,index));
mat = cell2mat(arrayfun(func,1:N,'uni',0))
This is my output:
0 -5 -4 5 0 1 4 -1 0
0 0 -6 0 0 -6 6 6 0
0 -2 5 2 0 7 -5 -7 0
How do I remove columns with zeros?

 Akzeptierte Antwort

madhan ravi
madhan ravi am 10 Feb. 2019
Bearbeitet: Guillaume am 1 Apr. 2020

5 Stimmen

matrix(:,any(matrix == 0))=[] % removes column if there is any zero in the column
matrix(:,all(matrix == 0))=[] % removes column if the entire column is zero

4 Kommentare

Shouldnt it be like this then?
matrix(:,any(matrix==0))=[] % removes column if there is any zero in the column
matrix(:,all(matrix==0))=[] % removes column if the entire column is zero
Guillaume
Guillaume am 1 Apr. 2020
Bearbeitet: Guillaume am 1 Apr. 2020
@Jon, yes you are correct. I've fixed Madhan's answer (and accepted it)
madhan ravi
madhan ravi am 2 Apr. 2020
Thank you Jon and Guillaume:)
Ömer BOZKURT
Ömer BOZKURT am 16 Aug. 2022
Hello Sir. I have a question about delete columns. I want to delete columns if columns have more than 3 zero. How can I find it? Thanks for helping.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by