extracting index number if an item exist in some columns while not in the rest columns

1 vue (au cours des 30 derniers jours)
Hi,
let us say, i have a data table which has following form:
Index name A1 A2 A3,,,,,A10
and there is an item called David. The interesting things is David is in some of the columns (david is not A1, A2 columns and is in the rest of the columns).
I am interesed in the extracting the index number of david whether is in column or not (if not in the column, may return o or NaN), i tried hard, but could not write the corresponding code, can some one help?
Thanks.
  4 commentaires
mirewuti muhetaer
mirewuti muhetaer le 27 Mar 2020
Hi, @Waler:
it appears at most once in each column.
Thanks.

Connectez-vous pour commenter.

Réponse acceptée

Akira Agata
Akira Agata le 27 Mar 2020
OK. Then, the solution would be like this:
% Sample table
Name = {'David','Bowie','Lynch','Mirewuti','Muhetaer','Akira','Agata'};
rng('default'); % for reproducability
T = table(Name(randperm(7,6))',Name(randperm(7,6))',Name(randperm(7,6))',Name(randperm(7,6))',...
'VariableNames',{'A1','A2','A3','A4'});
% Find the column which contains 'David'
idx = strcmp(T{:,:},'David');
idx = any(idx);
% Return the column name
colName = T.Properties.VariableNames(idx);
[Sample Table]
>> T
T =
6×4 table
A1 A2 A3 A4
____________ ____________ ____________ ____________
{'Lynch' } {'Akira' } {'Muhetaer'} {'Lynch' }
{'Bowie' } {'Bowie' } {'David' } {'Mirewuti'}
{'Mirewuti'} {'Mirewuti'} {'Bowie' } {'Akira' }
{'David' } {'Muhetaer'} {'Lynch' } {'Agata' }
{'Akira' } {'Lynch' } {'Akira' } {'David' }
{'Agata' } {'Agata' } {'Mirewuti'} {'Muhetaer'}
[Extracted column name]
>> colName
colName =
1×3 cell array
{'A1'} {'A3'} {'A4'}

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by