mira lo de los caracteres extraños probablemente sea poque el sensor entrega la medicion en forma binaria, y si la envias directamente al hiperterminal trabaja con valores de caracteres ascii, es decir si tu sensor te envia un 65 binario en el hiperterminal aparecera una A (la A es un 65 en ascii) y asi con todos los valores en matalab deberia arreglarse si en lugar de leer del sensor caracteres lees los bytes como enteros
En MATLAB concatenas así: c = [ MSB LSB ]
Insisto eso no quiere decir que los concateno, ademas estamos hablado de bits recibidos por el puerto serial. no es lo mismo 12 que equivale en binario --->00010010a un array de dos posiciones [1 2] en el cual si representamos cada valor por 8 bits daria 1 ----> 00000001 2 ----> 00000010 Para nada es lo mismo, el echo que el promt de matlab los muestre como si estuvieran juntos para nada lo mismo decir el array [1 2], al numero 12.El esta hablando que el PLC envía sus datos de a 16 bits y como el puerto serie como máximo maneja 9 bits entonces se le propuso que recibiera dos tramas de a 8 bits y luego los concatene y luego convertilo a double para tener su valor.El ultimo ejemplo digamos, que el PLC va a enviar el numero 300 por el puerto serial , para hacer esto yo conozco una manera que seria enviar tres bytes de a 8 bits y luego verificar si todo se recibió bien con un byte de checksum. Esos tres bytes estarían conformados por su equivalente en ASCII "podría ser" de cada cifra.3 ----- > 0011 0011 0 ----- > 0011 00000 ----- > 0011 0000Y luego se procedería a concatenar cada carácter OJO carácter no bytes, en una sola variable tipo String de valor "300" pero no es lo mismo "CONCATENAR" como tu lo dices en una matriz, de un tipo de dato Llamado Array de la siguiente manera [3 0 0], eso quiere decir que creaste una array con tres posición pero no una sola variable de valor 300
Parece interesante tu metodo lo probrare pero pues con el ejemplo del numero 300 yo lo habia pensado hacer de la siguiente manera Primero se recibe el caracter '3' se conviente a entero y se multimplica por 100 ("en el caso de que solo se reciban 3 cifras") luesgo se recibe el caracter '0' se convierte a entero y se multiplica por 10.... espero me entiendas la idea