ismember function with nested arrays

I am trying to determine if a list from an excel file (selected_signals) exists in the a more complete list ( list_of_signals).
The second list has nested arrays in it and is a sort of hierarchy. For example there is one column for a string name and then another column for an array that contains more information. If you go into to the nested array the same thing will be seen (one column for a string name and another for another nested array). This will eventual stop when there is no longer a second column for an array because it is the end of the naming hierarchy.
Can you use the ismember function with arrays that have nested arrays?
Thank you!
The selected signals array is a 2D array:
B={'AS1A','_00_AR'}
The list of signals array could be something like this but with more entries:
A={ {'AS1A', { {'_00_AR', {'LABEL06'; 'LABEL07'} }}}; {'AS1B', { {'_00_AR', {'LABEL06'; 'LABEL07'} }}}}
Code:
NRTS = handles.NRTS;
list_of_signals = NRTS.list_of_model_outputs;
if ismember(selected_signals, list_of_signals)
handles.NRTS = NRTS
set(handles.lb_selected_signals, 'String', selected_signals);
h = msgbox('This is a valid output choice','Valid Output');
else
handles.NRTS = NRTS
msg = ['One or more of the selected output is invalid. '];
h = errordlg(msg,'Invalid Output');
end

5 comentarios

Matt Fig
Matt Fig el 10 de Oct. de 2012
Can you construct a sample array so we can see what is going on? It can be real simple and short, but should capture the salient features...
Benjamin
Benjamin el 10 de Oct. de 2012
Hopefully that helps?
Jan
Jan el 10 de Oct. de 2012
I do not understand any line of your example.
‘_00_ARINC_OUT| 124x1cell
Is "|" an OR-operator, an optical separator, or what?
Please post some valid Matlab code like:
A = {{1,2,3}, {'asd', 'bsd'}; 15, struct('a', 'b')}
Matt Fig
Matt Fig el 10 de Oct. de 2012
I second Jan's comment. Post some valid MATLAB code we can copy and paste. The code can be short and simple, yet it should accurately represent the salient features of your data...
Benjamin
Benjamin el 10 de Oct. de 2012
Editada: Benjamin el 10 de Oct. de 2012
That is fair. I have added two arrays above. They would only differ in that there would be more entries in each.
Calling ismember(B, A) gives me the error "Input must be cell arrays of strings." I assume this is due to some of the cells being arrays. Is there a work around?

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Etiquetas

Preguntada:

el 10 de Oct. de 2012

Community Treasure Hunt

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

Start Hunting!

Translated by