RE:Decodificador morse y viceversa
Lo primero que se me ocurriría para hacer lo que dices sería identificar los puntos y rayas con 0 y 1 o viceversa. Entonces la decodificación es como la de un alfabeto binario con palabras de longitud variable. El problema es que el morse es rarillo y algunos símbolos son prefijo de otros.
Pensándolo se me había ocurrido poner un valor por cada posición y multiplicarlo por 1 si es un punto y por 100 si es una raya y sumarlo a un total. Por ejemplo si en morse te viene una letra con un string a que vale '..-..'
total=0;
for i=1: length(a)
val=2^i;
if a(i)=='.'
prod=1;
else
prod=100;
end
total=total+val*prod;
end
Al final tendremos un número en total que será distinto para cada símbolo del alfabeto. Ahora bien, tendremos que haber preparado previamente un array donde tengamos los valores de las letras y otro donde estén ordenadas las letras correspondientes. Serán por ejemplo:
valores=[201 114 510 etc (no voy a calcular todos, se puede hacer con otro script y dejarlo guardado)
letras='abcdefgh...
Entonces ya se puede buscar el número que nos ha dado en total con la función find
resultado=letras(find(valores==total));