Imprimir un arreglo de bits
Publicado por Gabriela (2 intervenciones) el 21/10/2018 10:53:20
Hola, alguien me podría ayudar a imprimir una cadena de bits dentro de un fprintf, cuando intento imprimir la cadena me resultan unos cuadros.
El código cuenta el número de caracteres del manual para ser niño calcula la probabilidad y la cantidad de información que recibe con esta información necesito asignar 2 cadenas de bits correspondientes, una fija y una aleatoria. pero no puedo imprimirlas. Espero me puedan ayudar, saludos cordiales.
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
clear all
clc;
ka=1;
caracteres(ka)=0;% Matriz
Texto = fopen('ManualparaserNino.txt','r'); %Abrir el archivo
VectorTexto=fscanf(Texto, '%c'); %Escanear el archivo y guardarlo en la matriz cadena
fclose(Texto);
Ale4=randi([0 15],1,1);
BAle4=de2bi(Ale4,'left-msb');
Ale8=randi([0 255],1,1);
BAle8=de2bi(Ale8,'left-msb');
Ale16=randi([0 65535],1,1);
BAle16=de2bi(Ale16,'left-msb');
for i=32:255 % 225 caracteres Ascii
dat=char(i);%Char convierte el numero ascii a caracter
total=length(strfind(VectorTexto,dat));
probabilidad=total/length(VectorTexto);%probablidad #eventos/#totalEventos
logaritmo=log2(1/(probabilidad));%probablidad #eventos/#totalEventos
Asig_i=(i);
BAsig_i=de2bi(Asig_i,'left-msb');
if(total ~= 0)% Sí el total es diferente de cero se mostrara
caracteres(ka)=total;
x = logaritmo;
y=0;
if (x>0) && (x<=2)
y =2;
CadenaAsig=BAle4;
elseif (x>2) && (x<=4)
y=4;
CadenaAsig=BAle4;
elseif (x>4) && (x<=8)
y=8;
CadenaAsig=BAle8;
else
y=16;
CadenaAsig=BAle16;
end
fprintf('Caracter: %c se repite: %d veces, Cadena asignada %s \n',dat,total, BAsig_i);
ka=ka+1;
end
end
fprintf('Tamano del texto de: %d caracteres',length(VectorTexto));% ManualparaserNino.txt
El código cuenta el número de caracteres del manual para ser niño calcula la probabilidad y la cantidad de información que recibe con esta información necesito asignar 2 cadenas de bits correspondientes, una fija y una aleatoria. pero no puedo imprimirlas. Espero me puedan ayudar, saludos cordiales.
Valora esta pregunta
0