Colon operator for cells
Afficher commentaires plus anciens
Hello,
i have the following table:
Tab1=table('Size',[9 2],'VariableTypes',{'cell','double'},'VariableNames',{'Description','Value'});
Tab1.Description(:)={'Name1','Name2','Name3','Name4','Name5','Name6','Name7','Name8','Name9'};
Tab1.Value(:)=[5,10,17,7,25,75,23,47,54];
Tab1=
Description Value
_______ _______
'Name1' 5
'Name2' 10
'Name3' 17
'Name4' 7
'Name5' 25
'Name6' 75
'Name7' 23
'Name8' 47
'Name9' 54
I want to access Description from 'Name3' until 'Name8', is there a way to do it with the concrete content ('Name3' and 'Name8') and without using the rows/columns?
So i want the solution of the following calculation, but the calculation itself should be different:
Tab1.Description(3:8,1);
'Name3'
'Name4'
'Name5'
'Name6'
'Name7'
'Name8'
I am searching for a solution similar to:
Tab1.Description({'Name3'}:{'Name8'});
This doesnt work, because of: Undefined operator ':' for input arguments of type 'cell'.
I will greatly appreciate any assistance.
Réponses (1)
madhan ravi
le 22 Avr 2019
idx="Name"+(3:8);
Tab1(ismember(Tab1{:,1},idx),:)
4 commentaires
Max Bornemann
le 22 Avr 2019
madhan ravi
le 22 Avr 2019
For older versions:
idx = regexp(sprintf('Name%d\n',3:8),'(\w*)','match');
% or
idx = sprintfc('Name%d',3:8); % undocumented
madhan ravi
le 22 Avr 2019
Modifié(e) : madhan ravi
le 22 Avr 2019
So mention the idx as is and then use ismember() ?
idx = {'Max'
'Name4'
'Name5'
'Name6'
'Name7'
'Linda'};
Tab1(ismember(Tab1{:,1},idx),:)
Max Bornemann
le 22 Avr 2019
Catégories
En savoir plus sur Mathematics dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!