フィルターのクリア

How to delete specific lines in a table

6 ビュー (過去 30 日間)
012786534
012786534 2016 年 7 月 11 日
コメント済み: Peter Perkins 2016 年 8 月 3 日
Hello all, Let's say I have a table A with 15 variables. In this table, I have variable B which contains a weird mix of numbers, empty cells and symbols like so:
B = [1, '' , 14, '(' , 2, 9, '}', '']
Now, I want to delete every row in the entire table where variable B is either empty or not a number. Any ideas? Thanks all!

回答 (2 件)

James Tursa
James Tursa 2016 年 7 月 12 日
E.g., assuming variable B is really a cell array since you stated it had mixed numeric and character data:
x = ~cellfun(@isnumeric,A.B) | cellfun(@isempty,A.B);
A(x,:) = [];

Azzi Abdelmalek
Azzi Abdelmalek 2016 年 7 月 12 日
Look at this example
B = {1, '' , '14b', '(' , 2, 9, '}', ''}'
A=num2cell(ones(size(B)))
C=cell2table([A B],'variablenames',{'A','B'})
k=table2cell(C)
idx=cellfun(@(x) isnumeric(x),k(:,2))
k=k(idx,:)
out=cell2table(k)
  1 件のコメント
Peter Perkins
Peter Perkins 2016 年 8 月 3 日
There's no point in converting to a cell array and then back again. James' response shows how to use table subscripting directly.

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

カテゴリ

Help Center および File ExchangeTables についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by