MATLAB: Removing zero columns from matrix

column operationvectorizationzeros

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?

Best Answer

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