Matlab - convertir de string a binario

 
Vista:
sin imagen de perfil

convertir de string a binario

Publicado por Plinio Reinaldo (1 intervención) el 22/09/2022 07:32:15
Hola:
Con el siguiente fragmento de codigo, obtengo en a una cadena de string con codigos que necesito convertir a binarios.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
p = input ('Distribución de probabilidad de fuente de entrada: \ n'); %poner la probabilidad entre [] y separados por un espacio
 [~, n] = size (p);
 HT = zeros(2 * n-1,4);
 
for i=1:n
    HT(i,1)=p(i);
end
 HT;
HT0=HT;
 
 
for i=1:n-1
         a=HT0(:,1);
         [b,l]=sort(a,'descend');
                   s = b (n-i + 1) + b (n-i);
                   HT0 (n + i, 1) = s;
                   HT0 (l (n-i + 1), 1) = 0;
                   HT0 (l (n-i), 1) = 0;
 
                   HT0 (l (n-i + 1), 2) = n + i;
                   HT0 (l (n-i), 2) = n + i;
 
                   HT0 (n + i, 3) = l (n-i + 1);
                   HT0 (n + i, 4) = l (n-i);
 
 
         HT(n+i,1)=s;
         HT(l(n-i+1),2)=n+i;
         HT(l(n-i),2)=n+i;
         HT(n+i,3)=l(n-i+1);
         HT(n+i,4)=l(n-i);
end
 
 HT;
 
 
a={;};
for i=1:n
    a{1,i}=' ';
end
 
 
for i=1:n
    f=i;
        while (HT (f, 2) ~= 0)
                 q = HT (f, 2);
 
        if HT(q,3)==f
                 a {i} = strcat ('0', a {i});
        else
                 a {i} = strcat ('1', a {i});
        end
                 f = q;
        end
end

Cuando realizo estas funciones, me convierte a en una matriz, y obtengo en Vect el resultado deseado....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
for k1=1:length(a)
    for k2=1:10
        Vect(k1,k2)=2;
    end
end
%convertir 'a' de string a binario y asignarlo en la matriz Vect
for k3=1:length(a)
    M=str2double(a(k3));
    z=num2str(M);
    s=uint8(z);
    y=dec2bin(s);
    for t1=1:length(y(:,1))
        for t2=1:6
            En(t1,t2)=bin2dec(y(t1,t2));
        end
    end
    for k=1:length(y(:,1))
        Vect(k3,k)=En(k,6);
    end
end

PERO si alguno de los codigos incluidos en a empieza con 0, no lo toma correctamente

NECESITO AYUDA Y SABER COMO PODER EXTRAER LOS VALORES DE a CORRECTAMENTE
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder