delete columns of empty elements of a cell
8 次查看(过去 30 天)
显示 更早的评论
Hello! I have a cell like this:
empty_elem = [];
A = {'5','11',empty_elem,empty_elem;'99','169','188',empty_elem;'250','258','267',empty_elem};
I want to delete the column consisting of null elements and transform the cell like this:
A = {'5','11',empty_elem;'99','169','188';'250','258','267'};
I would need code that can do this also considering that:
- It may happen to have multiple null columns (and not just one).
- Null columns are always found at the end (inside the cell).
I tried this way, but it deletes columns that I don't want to be deleted:
empty_elem = [];
A = {'5','11',empty_elem,empty_elem;'99','169','188',empty_elem;'250','258','267',empty_elem};
A(:, any(cellfun(@isempty, A), 1)) = [];
0 个评论
采纳的回答
Mayur
2023-6-23
编辑:Mayur
2023-7-9
Hi Alberto!
I understand that some extra columns are also getting deleted using the above command. You can instead use the following code snippet to achieve the desired functionality:
empty_elem = [];
A = {'5','11',empty_elem,empty_elem;'99','169','188',empty_elem;'250','258','267',empty_elem};
A(:, all(cellfun(@isempty, A), 1)) = [];
disp(A);
Using any deletes a column having at least one null value, whereas using all deletes those columns having all the values as null.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Operators and Elementary Operations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!