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?

 採用された回答

madhan ravi
madhan ravi 2019 年 2 月 10 日
編集済み: Guillaume 2020 年 4 月 1 日

5 投票

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 件のコメント

Jon Adsersen
Jon Adsersen 2020 年 4 月 1 日
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 2020 年 4 月 1 日
編集済み: Guillaume 2020 年 4 月 1 日
@Jon, yes you are correct. I've fixed Madhan's answer (and accepted it)
madhan ravi
madhan ravi 2020 年 4 月 2 日
Thank you Jon and Guillaume:)
Ömer BOZKURT
Ömer BOZKURT 2022 年 8 月 16 日
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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeOperators and Elementary Operations についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by