¿Cómo puedo convertir [12 25 34 466 55] a una matriz de cadenas ['12' '25' '34' '466' '55']? Las funciones de conversión sé convertir la matriz a una cadena que representa la totalidad de la matriz.

InformationsquelleAutor olamundo | 2012-08-28

5 Comentarios

  1. 31

    Una matriz de cadenas que tiene que ser una celda de la matriz. Que dijo:

    s = [12 25 34 466 55]
    strtrim(cellstr(num2str(s'))')
    • Una mejor manera de lo que he escrito arriba.
    • Esto es más de dos veces más rápido que el de arrayfun y cellfun. +1
  2. 11

    Utilizando arrayfun junto con num2str funcionaría:

    >> A = [12 25 34 466 55]
    A =
       12    25    34   466    55
    
    >> arrayfun(@num2str, A, 'UniformOutput', false)
    ans = 
        '12'    '25'    '34'    '466'    '55'
    • ¿por qué no arrayfun(@num2str, A, 'UniformOutput', false)? El mismo concepto, la misma salida, pero evitar el «de-celular» y «célula» de las conversiones.
    • Buen punto. He actualizado la respuesta.
  3. 10

    Ahora, después de MATLAB 2016b, usted puede simplemente utilizar

    s = [12 25 34 466 55]; 
    string(s)
  4. 0

    En MATLAB, [’12’ ’25’ ’34’ ‘466’ ’55’] es la misma como la única cadena que contiene los números. Es decir:

    ['12' '25' '34' '466' '55']
    
    ans =
    
    12253446655

    Necesito más contexto para lo que usted está tratando de lograr, pero suponiendo que se desea todavía será capaz de acceder a cada individuo de número como una cadena, una celda de la matriz es probablemente el mejor enfoque que usted puede tomar:

    A = [1 2 3]
    num2cell(num2str(A))

    (Por supuesto, usted todavía tiene que quitar la perdida de los espacios de la ans)

    • Incluso si se elimina la perdida de los espacios, se termina con una celda de la matriz de cadenas que contiene cada dígito por separado. Intercambiar el orden de num2cell y num2str lugar. cellfun(@num2str,num2cell(s),'UniformOutput',false) hace el trabajo muy bien.
  5. 0

    A partir de R2016b también existe la componen función:

    >> A = [12 25 34 466 55]
    
    A =
    
        12    25    34   466    55
    
    >> compose("%d", A)
    
    ans = 
    
      1×5 string array
    
        "12"    "25"    "34"    "466"    "55"'''

Dejar respuesta

Please enter your comment!
Please enter your name here