Que necesito para convertir lógica del vector de cadena .. así que puede tomar cada 8 bits de la lógica de los vectores y de convertir al equevilant de char ..

A=0 1 1 1 0 1 1 0 1 1 0 0 0 0 1 ;
A is of type logical 

que necesito para convertir una cadena , por lo que Una será igual a ‘va’

2 Comentarios

  1. 2

    Puede utilizar char para convertir un número a un personaje.

    Para convertir cada uno de los 8 elementos de A en un número, hay un par de métodos:

    % using definition of binary
    n = sum(A(1:8).*2.^[7:-1:0])
    % using 'base2dec'
    n = base2dec(sprintf('%i',A(1:8)),2)

    A continuación, utilizar char(n) que el personaje fuera.

    Para aplicar cada 8 elementos de A usted podría utilizar un bucle o algo así arrayfun.

    arrayfun( @(i) char(base2dec(sprintf('%i',A(i:(i+7))),2)),
              1:8:length(A) )

    Nota La A te dio en tu pregunta original sólo tiene 15 elementos, de modo que usted no puede realmente cada grupo de 8 (se necesitan 16) – usted tendrá que escribir el código para lidiar con lo que hacer en este caso.

    Útil docs:

  2. 0

    Además a @matemática.café respuesta, en lugar de SPRINTF usted puede simplemente añadir 48 (que es el código para el carácter ‘0’) a a para obtener la cadena:

    Astr = char(A + 48);

    o

    Astr = char(A + int8('0'));

    También puede utilizar BIN2DEC en lugar de BASE2DEC.

    Así que usted puede utilizarlo en ARRAYFUN como

    arrayfun( @(i) char(bin2dec(char(A(i:(i+7))+48))),1:7:length(A) )

Dejar respuesta

Please enter your comment!
Please enter your name here