Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

Finding a cell in an array

1 vue (au cours des 30 derniers jours)
James
James le 8 Avr 2014
Clôturé : MATLAB Answer Bot le 20 Août 2021
Hi,
I have a large cell aray called "txt". I am looking for a cell that is in this array, but the location/name changes from time to time. But this cell is always located next to one that has "vehicle" in it. How do i go through the text array and find the "vehicle" cell, but index it so I actually grab the cell next to it since that is the one that I want?
Thanks

Réponses (3)

dpb
dpb le 8 Avr 2014
One way...should be a simpler one but it didn't come to me otomh just now...
c is a cell array around had for an earlier query; just added the word 'vehicle' inside the first location...
>> c
c =
'This is vehicle' 'Description 1234567890'
>> find(cellfun(@(x) ~isempty(strfind(x,'vehicle')),c))+1
ans =
2
>> c(find(cellfun(@(x) ~isempty(strfind(x,'vehicle')),c))+1)
ans =
'Description 1234567890'
>>

Dishant Arora
Dishant Arora le 8 Avr 2014
idx = find(cellfun(@(x) isequal(x , 'vehicle') , testCell))+1;
  3 commentaires
Dishant Arora
Dishant Arora le 8 Avr 2014
Probably you interpreted it right. Let the poster make a call on that.
dpb
dpb le 8 Avr 2014
Ayup...just pointing out the "why" of choosing the apparently more difficult route.

Image Analyst
Image Analyst le 8 Avr 2014
Modifié(e) : Image Analyst le 8 Avr 2014
Try ismember:
txt = {'aaa', 10; 'bbb', 20; 'vehicle', 30; 'ddd', 40}
% Find 'vehicle' in the first column of the above list of strings.
index = find(ismember(txt(:,1), 'vehicle'))
numberYouWant = txt(index, 2) % Extract second column in that row.

Cette question est clôturée.

Community Treasure Hunt

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

Start Hunting!

Translated by