Yep, you can! I've attached a quick program I'm using that sends data with MATLAB and receives with Python. Currently, it sends 3 bytes (with 2 header bytes), while the received creates an array out of the received bytes after the header, up until a timeout is reached (this is because I haven't decided how long I'd like my full message to be yet).
The file to send a message is in the zip named serial_sender.m
comport = 'COM3'
s = serial(comport);
s.BaudRate = 57600;
headerToSend = uint8([5 5]);
packetToSend = uint8([1 2 3]);
dataToSend = [headerToSend packetToSend];
disp('Data sent is: ')
See serial_reader.py inside the attached zip (Mathworks doesn't let you upload Python files directly) . I added a few comments to hopefully clarify what is happening and make it easier for you to adopt. I also added a super simple "template" file called serial_reader_template.py to give a less detailed look at receiving serial messages using Python.
serial_receiver.m (MATLAB) and Python Sender
I write a MATLAB script to receive serial messages (same format as those that are being send by the other script), named serial_receiver.py. I don't have a python serial sender, but it should be simple to find a tutorial or two.
Changes I'd Recommend
You would need to change the data type in the line
new_dat = struct.unpack("b",buffer)
From "b" to "B", depending if your character is unsigned or not.
Lemme know if you have any questions :)