datos puerto serial guardar en varias variables

jose ballesteros
22 de Mayo del 2010
buena miran tengo un dispositovo un gps y este envia tramas por serial o usb he visto que matlab tiene la opcion de utilizar puertos COM

PS=serial('COM2');
set(PS,'Baudrate',9600); % se configura la velocidad a 9600 Baudios
>> set(PS,'StopBits',1); % se configura bit de parada a uno
>> set(PS,'DataBits',8); % se configura que el dato es de 8 bits, debe estar entre 5 y 8
>> set(PS,'Parity','none'); % se configura sin paridad
>> set(PS,'Terminator','CR/LF');% “c” caracter con que finaliza el envío
>> set(PS,'OutputBufferSize',1); % ”n” es el número de bytes a enviar
>> set(PS,'InputBufferSize' ,1); % ”n” es el número de bytes a recibir
>> set(PS,'Timeout',5); % 5 segundos de tiempo de espera
>> fopen(PS);
>> variable = fread(PS,1,'uint8');


por ejemplo pero el gps que tengo me envia varios tipos de tramas y la tramam que yo necesito es la siguiente

$GPGGA, 161229.487,3723.2475,N, 12158.3416,W, 1,07,1.0,9.0,M, 0000*18 segun la trama termina con un

en Basic para yo tormar esa trama utilzo una instruccion que dice wait ('$GPGGA') pero no se como se hace esto en matlab otra cosa es que por ejemplo en la trama que les mostré anteriormente:

161229.487 es la hora 16h:12m:29s487milesimas de segundo

3723.2475 latutud
N norte o sur

12158.3416 longitud
W este u oeste

como ven la como significa que lo que viene despues es otra medida mi pregunta es como hago para guardar cada una de estas medidas en variables distintas?