Matlab - Agregar 0 a un string

 
Vista:
sin imagen de perfil

Agregar 0 a un string

Publicado por Marco Antonio (61 intervenciones) el 21/10/2017 19:05:10
Tengo un programa que antes de ejecutar una sección tengo una matriz de valores binarios de 42 bit y después algunas veces tengo palabras binarias de 41 bit y me para el programa cuando trato de usar reshape por que no coinciden las matrices, lo que quiero hacer es agregar un 0 a la izquierda para que la palabra sea de 42 pero también quiero que compare cada palabra binaria y si no es de 42 le agregue los seros necesarios a la izquierda para que sea una palabra de 42.

Por ejemplo

antes de ejecutar el progrma

o1 =

010011010000111100101110110101111110000000
100110110000101001011001101001100011101000
001010100001011000011011111000101010000101
000010101001101101001011000011110101001001
000010111001101101101011000011111100001000
010010000000111101101110010101011110000000
001010100001011000011011111000101010000101
100110100001100001011001001001100001100001
010011010000111100101110110101111110000000
000010101001101101001011000011110101001001

cada palabra de la matriz es de 42 bits

despues de ejecutar el programa

o3 =

10011010000111100101100110100000011110001
10011010000111100101110110101111110000000
10010110100111010101101111011011110000001
10010110100111010101101111011011001101011
00010111001101101101011000011111100001000
10010000000111101101110010101011110000000
00010101001101101001011000011110101001001
00010111001101101101011000011111100001000
10011010000111100101110110101111110000000
00010101001101101001011000011110101001001

cada palabra es de 41 bits

y lo que quiero es que compare si las palabras dentro de o3 son de 41 bits que lo agregue un sero a la izquierda y me quede haci



010011010000111100101100110100000011110001
010011010000111100101110110101111110000000
010010110100111010101101111011011110000001
010010110100111010101101111011011001101011
000010111001101101101011000011111100001000
010010000000111101101110010101011110000000
000010101001101101001011000011110101001001
000010111001101101101011000011111100001000
010011010000111100101110110101111110000000
000010101001101101001011000011110101001001

Atentamente
Muchas Gracias
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
sin imagen de perfil

Agregar 0 a un string

Publicado por Marco Antonio (61 intervenciones) el 22/10/2017 00:28:32
yo trate escribiendo esto

1
2
3
4
5
6
7
P1=randi([0 (2^42-1)],10,1)
 
o3=dec2bin(P1)
 
vec=zeros(N,1)
 
B = [o3(:,1:0) vec o3(:,0+1:end)]

pero no agrega los ceros

Tambien trate esto y nada

1
2
3
4
5
6
7
P1=randi([0 (2^42-1)],10,1)
 
o3=dec2bin(P1)
 
A1_zeros = [zeros(size(o3,1),1) o3];
 
A2_zeros = cat(2, zeros(size(o3,1),1), o3);

pero no agrega los ceros y no se que hace ya
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Agregar 0 a un string

Publicado por Marco Antonio (61 intervenciones) el 22/10/2017 01:03:59
Una razon por lo que no lo hace puede ser por que es una variable char como combierto una matriz char a una matriz double ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Agregar 0 a un string

Publicado por Marco Antonio (61 intervenciones) el 22/10/2017 01:41:55
Lo logre con esto
1
2
3
4
5
6
7
8
A0=[str2num(o3(:))]'
A2=reshape(A0,length(P1),42)
pero ahora tengo un problema que necesito convertirlo otra ves a char y cuando uso esto 
A3=num2str(A2_zeros)
A3 =

0  1  0  1  0  1  0  0  0  0  0  1  0  0  0  0  0  1  0  0  1  1  1  1  0  0  1  1  0  1  1  1  1  0  1  0  1  1  0  0  0  0  0
0  0  0  1  1  1  1  0  0  1  1  1  1  1  1  0  1  0  0  1  0  1  0  1  0  0  1  1  0  1  0  1  0  1  1  0  0  0  1  0  1  0  1

>> whos A3
Name Size Bytes Class Attributes

A3 2x127 508 char

pero yo necesito esto

>> whos o1
Name Size Bytes Class Attributes

o1 2x42 168 char

alguien me puede ayudar por favor si alguien conoce una forma mas sencilla de hacer todo me podria decir

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar