Delete values from different columns depending on a value from a specific column
1 回表示 (過去 30 日間)
古いコメントを表示
I have a double variable with 3 columns. Sometimes, in the second column I obtain the value zero. In case it happens I want to completely erase that line. For instance:
12346 67 89
1245 0 765
56 0 99
19862 8 675
What I would like to get:
12346 67 89
19862 8 675
Thanks in advance for your help.
0 件のコメント
採用された回答
Star Strider
2014 年 4 月 28 日
This works:
a = [12346 67 89; 1245 0 765; 56 0 99; 19862 8 675];
a((a(:,2) == 0),:) = [];
It uses ‘logical indexing’ to eliminate the entire row with a zero in the second column.
6 件のコメント
Star Strider
2014 年 5 月 18 日
Here you go:
MCA = {1 2 3; 4 'ab' 6; 7 8 'bc'; 4 3 8; 7 2 1; 'yz' 10 pi}; % Mixed Cell Array
FS = cellfun(@ischar,MCA); % Find string elements
SR = find(sum(FS,2)); % Find rows containing string elements
NSR = setdiff(1:size(MCA,1), SR)'; % Find rows NOT containing string elements
MCAnew = MCA(NSR,:) % Create new array
Have fun!
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Startup and Shutdown についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!