Análise de Matlab # # # # natureza usando uma variedade de métodos para encontrar o índice do celular (célula) sequência especificada e analisadas as limitações e armadilhas

Encontrar cordas celulares dentro comumente usado de três maneiras.

método um

>> C = {1,5,3,4,2,3,4,5,2,1}; 
index = find([C{:}] == 5)

index =

     2     8

Em primeiro lugar, por um método de [C {:}] operação, os elementos no interior da célula em uma matriz, em seguida, executa o encontrar de matriz () devolve o índice para localizar a cadeia.

  • vantagem

E tipos de dados numéricos simultaneamente em um único caractere dentro da célula de pesquisa

  • limitação

Este método é apenas um número (incluindo decimal) ou um único caractere (carácter único) eficaz.
Se mais de uma ação de caráter seguinte erro:

>> c={'1' '5d' '3' '4' '2' '3' '4' '5' '2' '1'};
>> index = find([c{:}] == '5d')
错误使用  == 
矩阵维度必须一致。
  • análise aprofundada das razões erros (armadilha)

A razão pela qual ocorre o seguinte erro, a chave é [] operação .
Vamos dar uma olhada em [] a diferença entre operacional em diferentes tipos de dados

  1. Uma pluralidade de tipo numérico variáveis que são [] operações, essencialmente todas as variáveis em uma matriz no sistema retorna uma matriz numérica;
>> C = {1,5,3,4,2,3,4,5,2,1}; 
[C{:}]

ans =

     1     5     3     4     2     3     4     5     2     1
  1. Uma pluralidade de caracteres variáveis, realizando [] sobre a operação é essencialmente efectuada uma concatenação , ele retorna um char matriz , cada elemento da matriz armazenar um carácter comprimento de 1
>> c={'1' '5d' '3' '4' '2' '3' '4' '5' '2' '1'};
[c{:}],class([c{:}])

ans =

15d34234521


ans =

char

Além disso, o estudo constatou, encontramos: a declaração comprimento certo ([c {}] == ' 5d') por unidade de comprimento deve ser deixado na matriz
de modo de volta para o início da declaração do problema find ([c {:}] = = '5D') , do lado esquerdo do sinal de igual é a matriz de caracteres * n-1, um conjunto de caracteres para o direito de o * 2, 2 não é igual ao comprimento do lado direito do lado esquerdo da unidade mínima 1, o erro: matriz de erro utilizando == dimensão tem de ser consistente.

método dois

>> c={'1' '5d' '3' '4' '2' '3' '4' '5' '2' '1'};
index = find(strcmp(c,'5d'))

index =

     2
  • vantagem

método strcmp () capaz de obter simultaneamente um carácter e a cadeia

  • limitação

strcmp () método não pode recuperar numéricos dados.

>> c={1,'5',3,4,2,3,4,5,2,1};index = find(strcmp(c,5))

index =

   空矩阵: 1×0

método três

>> c={'1' '5d' '3' '4' '2' '3' '4' '5' '2' '1'};
>index = find(ismember(c,'5d'))

index =

     2
  • vantagem

Você pode recuperar cadeia de caracteres e um único caractere

  • limitação

não podem ser recuperadas numéricos tipos de dados,
não pode conter mista tipos de dados celular (ou contém seqüência numérica e caráter) ser recuperado.
mais devagar

>>  c={1,'5d','5',4,2,3,4,5,2,1};
idx = find(ismember(c,'5'))
错误使用 cell/ismember (line 34)
类 cell 的输入 A 和类 char 的输入 B 必须为字符串元胞数组,除非其中某个输入为字符串。

resumo

Pela tabela resumem a três métodos Âmbito

método Recuperação de dados célula contém uma mistura de Recuperando numérica Recuperando um único caractere seqüência de recuperação
método um ×
método dois ×
método três × ×
Publicado 59 artigos originais · ganhou elogios 2 · Vistas 4636

Acho que você gosta

Origin blog.csdn.net/lch551218/article/details/103805042
Recomendado
Clasificación