Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

Finding a cell in an array

1 visualización (últimos 30 días)
James
James el 8 de Abr. de 2014
Cerrada: MATLAB Answer Bot el 20 de Ag. de 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

Respuestas (3)

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

Image Analyst
Image Analyst el 8 de Abr. de 2014
Editada: Image Analyst el 8 de Abr. de 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.

La pregunta está cerrada.

Community Treasure Hunt

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

Start Hunting!

Translated by