Matlab - "¿Còmo puedo Cambiar los valores 0 a -1 en unvector?"

 
Vista:

"¿Còmo puedo Cambiar los valores 0 a -1 en unvector?"

Publicado por Joselyne (7 intervenciones) el 24/03/2014 22:15:01
"Hola a Todos"

¿Alguien me puede ayudar?
Lo que necesito es cambiar de los valores de un vector es decir;

si tengo un uno se mantiene y si tengo un cero cambie a -1:

por ejemplo: a=[1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1];

lo debo cambiar y deberà quedar asì: a=[1 -1 -1 1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 ];
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
Imágen de perfil de Jorge De Los Santos
Val: 30
Ha disminuido su posición en 12 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

"¿Còmo puedo Cambiar los valores 0 a -1 en unvector?"

Publicado por Jorge De Los Santos (213 intervenciones) el 25/03/2014 04:17:17
Hola Joselyne

Puedes hacerlo de la siguiente manera:

1
a(a==0) = -1;


Saludos.
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

"¿Còmo puedo Cambiar los valores 0 a -1 en unvector?"

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 25/03/2014 11:28:38
1
2
3
4
5
>> a=[1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1]; posicion=find(a==0); a(posicion)=-1
 
a =
 
     1    -1    -1     1    -1    -1    -1     1    -1    -1     1    -1     1    -1    -1    -1    -1    -1    -1     1




Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online y Presencial en Matlab
programador en matlab
Servicios de programación matlab
[email protected]
El correo es para servicios de programación, toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

"¿Còmo puedo Cambiar los valores 0 a -1 en unvector?"

Publicado por Joselyne (7 intervenciones) el 25/03/2014 19:31:40
Hola de nuevo!!

Miré tengo este código al cual es al que quiero cambiar los ceros por un menos uno, y no me lo permite.
En cambio si le asigno otro número positivo y lo cambia...
Pido de su ayuda.
Gracias!!

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
56
57
58
59
function Marca=GetObtenerMarcaFromFile()
Marca=[];
[nomb, direc]=uigetfile('*.txt','r');
fid=fopen(strcat(direc,nomb));
Marca_uint8=fread(fid,'*uint8');
N=size(Marca_uint8)
 
for i=1:N
    Marca=[Marca,GetBitString(Marca_uint8(i))];
end
 
fclose(fid);
end
 
function BitString=GetBitString(num)
BitString=bitget(num, 8:-1:1);
end
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
function IncustracionLSB()
a=imread('imagen.bmp');
 
gris=rgb2gray(a);
imwrite(gris,'gris.bmp');
figure; imshow(gris);
 
 
[m,n]=size(gris)
Marca=GetObtenerMarcaFromFile()
SizeMarca=length(Marca)
 
ImagenMarcada=gris;
 
Marca2=Marca;
posicion=find(Marca2==0)
for i=1:posicion
Marca2(posicion)=-(1);
end
display(Marca2)
sizeMarca2=length(Marca2)
 
 
 
for Filas=1:m
    for Columnas=1:n
        if Columnas <= sizeMarca2
          ImagenMarcada(Filas,Columnas)=ImagenMarcada(Filas,Columnas)+Marca2(Columnas);
 
        end
        if ImagenMarcada(Filas,Columnas)>=255
            ImagenMarcada(Filas,Columnas)=ImagenMarcada(Filas,Columnas);
        end
    end
end
 
imwrite(ImagenMarcada, 'ImagenMarcada.bmp');
figure;
imshow(ImagenMarcada);
end
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

"¿Còmo puedo Cambiar los valores 0 a -1 en unvector?"

Publicado por Joselyne (7 intervenciones) el 26/03/2014 21:45:53
Hola de Nuevo!

Bién; ésta vez ya me cambio en 0 por -1


ahora sólo tengo un pequeño problemita, al cambiar mi tipo de dato de uint8 a int8

me dice:
Error using +
Integers can only be combined with integers of the same class, or scalar doubles.

Error in IncustracionLSB (line 25)
ImagenMarcada(Filas,Columnas)=ImagenMarcada(Filas,Columnas)+Marca(Columnas);


he checado cómo voy hacer mi suma y no me sale :(

¿Me podran ayudar?..... 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