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.
E tipos de dados numéricos simultaneamente em um único caractere dentro da célula de pesquisa
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')
错误使用 ==
矩阵维度必须一致。
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
- 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
- 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
método strcmp () capaz de obter simultaneamente um carácter e a cadeia
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
Você pode recuperar cadeia de caracteres e um único caractere
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 | × | × | √ | √ |