Matlab - como sustituir valores de una matriz por 0 o 1 dentro de la misma

 
Vista:

como sustituir valores de una matriz por 0 o 1 dentro de la misma

Publicado por anonimo (3 intervenciones) el 17/10/2016 12:19:29
Bueno, gracias por adelantado.

Tengo un sistema de matrices en 3d, es decir u nsistema en el que hay matrices y dentro de él, más matrices. La estructura es A{1,n}{1,m}, es decir que las matrices están en vectores dentro de los sistemas.

Estas matrices tienen valores numéricos, y l oque quiero es transformarlas de manera que el valor sea 0 si el valor es negativo, o 1 si es positivo.

Todo esto tiene que estar en un bucle para que dichas matrices, cuyas dimensiones no son fijas y varían en función a unas variables, se construyan solas.

Sé que tiene que ser difícil, y estoy probando cosas con find y bucles for con if, pero no me sale.

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
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

como sustituir valores de una matriz por 0 o 1 dentro de la misma

Publicado por Jorge De Los Santos (213 intervenciones) el 17/10/2016 20:17:33
Puedes probar con algo como:

1
2
3
4
5
6
7
8
for i = 1:n
    for j = 1:m
        cm = A{1,i}{1,j};
        cm(cm<0) = 0;
        cm(cm>0) = 1;
        A{1,i}{1,j} = cm;
    end
end


Donde n y m son las dimensiones de tu cell array, lo cual al parecer si conoces. Y "A" es, obviamente, tu cell array.
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

como sustituir valores de una matriz por 0 o 1 dentro de la misma

Publicado por Ricardo (1 intervención) el 18/10/2016 09:22:50
Gracias Jorge, al final lo pude hacer yo, con la siguiente estructura:

1
2
3
4
5
6
7
8
9
for ti=1:length(t);
 
    for s=1:length(m);
 
            HTaupm{1,ti}{1,s}=Taupm{1,ti}{1,s};
            HTaupm{1,ti}{1,s}(HTaupm{1,ti}{1,s}>=0)=1;
            HTaupm{1,ti}{1,s}(HTaupm{1,ti}{1,s}<0)=0;
end
end

Donde Taupm era el sistema ya comentado antes, señalar la importancia del orden de la condición, puesto que si primero pones el de <0 =0, entonces luego te lo cambia a 1.
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