Info

Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.

Finding a cell in an array

1 Ansicht (letzte 30 Tage)
James
James am 8 Apr. 2014
Geschlossen: MATLAB Answer Bot am 20 Aug. 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

Antworten (3)

dpb
dpb am 8 Apr. 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 am 8 Apr. 2014
idx = find(cellfun(@(x) isequal(x , 'vehicle') , testCell))+1;
  3 Kommentare
Dishant Arora
Dishant Arora am 8 Apr. 2014
Probably you interpreted it right. Let the poster make a call on that.
dpb
dpb am 8 Apr. 2014
Ayup...just pointing out the "why" of choosing the apparently more difficult route.

Image Analyst
Image Analyst am 8 Apr. 2014
Bearbeitet: Image Analyst am 8 Apr. 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.

Diese Frage ist geschlossen.

Community Treasure Hunt

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

Start Hunting!

Translated by