Encontrar string na matriz de células com elementos de diferentes tipos

Eu tenho uma função que leva argumentos variadicos. Esses argumentos são pares de valor de parâmetro, entãovarargin é uma matriz de células na qual todos os elementos indexados ímpares são uma cadeia (o parâmetro), mas os elementos indexados por pares podem ser uma cadeia, número ou matriz de cadeias de caracteres. Eu quero encontrar o índice de uma string em particularvarargin. Eu tenho uma solução de trabalho, mas ela usaarrayfun duas vezes; Existe uma maneira mais limpa / rápida / mais eficaz de encontrar uma string em tal matriz de célula? O resultadoindex será usado para remover esse elemento e o seguinte devarargin. Eu gostaria de minimizar a criação de novas variáveis.

str_to_find = 'paramX'
finds = arrayfun(@(i) strfind(varargin{i},str_to_find), 1:length(varargin), 'UniformOutput', 0);
finds2 = arrayfun(@(i) ~iscell(finds{i}) && ~isempty(finds{i}), 1:length(finds));
index = find(finds2==1);

varargin(index)=[];
varargin(index)=[];

Dadovarargin é{'paramA', 'valueA', 'paramB', 9, 'paramX', {'z','x','c'}, entãofinds é[] [] [] [] [1] {1x3 cell}, finds2 é0 0 0 0 1 0eindex é5. Então, minha solução faz o que eu preciso, mas parece feio. Eu usaria apenasfinds2 (isto é, não criarindex) para apagar esse elemento devarargin, mas também preciso remover o depois dele.

questionAnswers(2)

yourAnswerToTheQuestion