Programación Específica > Matlab
Problema con matriz lógia
rul32:
Hola. Estoy haciendo un programa, el cual tengo una matriz lógica de 1 y 0, y quería pasar esa matriz a matriz de caracteres '1' y '0' para poder enviar la matriz a un plc. he realizado este código:
for c = 1: +1: 148
for d = 1: +1: 148
if matriz1(c,d)==1
matrizASCI(c,d)='0'
else
matrizASCI(c,d)='1'
end;
end;
end;
Pero tarda muchísimo en realizar esta operación, alguien sabe porque es tan lento? hay alguna instrucción mas rápida? si alguien me puede ayudar se lo agradecería.
Un saludo.
jjasso5:
Intenta mat2str (matriz a string).
Por ejemplo:
m = [0 1 1;
0 1 0;
1 1 0]
ms = mat2str(m)
Sin embargo, el resultado asci sería
ms = [0 1 1;0 1 0;1 1 0]
que incluye espacios, corchetes y puntos y coma.
Serían 19 caracteres en ese vector-string.
Puedes manipularlo quitando lo que corresponda...
rul32:
Gracias por la respuesta. Pero he probado ms = mat2str(matriz1) y me genera un vector:
ms =
[false true true true true true ............true]
Habría la posibilidad de que fuera ?
ms =
[0 1 1 1 1 1 ............1] siendo los 1 y 0 caracteres
Un saludo.
jjasso5:
Si tienes:
mlogic = [false true true; true true false; false false true]
Lo puedes manipular así:
m(mlogic == true) = 1;
m(mlogic == false) = 0;
mascii = mat2str(m)
Richi254:
prueba haciendo esto:
char(matriz1)
y listo.
Un saludo
Navegación
[#] Página Siguiente
Ir a la versión completa