title: Real-time data transfer from Python to MATLAB
body: <p>I am using python to read data from a USB input device. I would like to know if there is a way this could be exchanged with the model in MATLAB real-time. How I do it now is to save the data read in a .mat file and then let the model read it from there, which is not very intuitive.The code I use for this is as below:</p>
  
  <pre><code>    #Import the needed libraries
      import usb.core,usb.util,sys,time
      import sys
      from array import *
      import scipy.io
  
      #find our device
      dev = usb.core.find(idVendor=0x046d, idProduct=0xc29a)
  
      # was it found?
      if dev is None:
         raise ValueError('Device not found')
  
     # set the active configuration. With no arguments, the first
     # configuration will be the active one
     try:
       dev.set_configuration()
       #In the event of an error
     except usb.core.USBError as e:
       print('Cannot set configuration the device: %s' %str(e))
       sys.exit()
  
     # get an endpoint instance
     cfg = dev.get_active_configuration()
     intf = cfg[(0,0)]
     ep = usb.util.find_descriptor(
                 intf,
       # match the first IN endpoint
       custom_match = \
       lambda e: \
       usb.util.endpoint_direction(e.bEndpointAddress) == \
       usb.util.ENDPOINT_IN)
  
    #Initialising variables
    #Databases for access in MATLAB
    gas_pedal_data={}
    brake_pedal_data={}
    steering_wheel_bit5_data={}
    steering_wheel_bit6_data={}
    gas_pedal=[]
    brake_pedal=[]
    steering_wheel_bit5=[]
    steering_wheel_bit6=[]
    i=0
    #Read data from the device as long as it is connected
    while(dev!= None):
         try:
            #Read data
            data = dev.read(ep.bEndpointAddress, ep.wMaxPacketSize,
                            timeout=1000)
            gas_pedal.append(data[6])
            gas_pedal_data['gas_pedal']=gas_pedal
            scipy.io.savemat('test.mat',gas_pedal_data)
            brake_pedal.append(data[7])
            brake_pedal_data['brake_pedal']=brake_pedal
            scipy.io.savemat('test.mat',brake_pedal_data)
            steering_wheel_bit5.append(data[4])
            steering_wheel_bit5_data['steering_wheel_bit5']=steering_wheel_bit5
            scipy.io.savemat('test.mat',steering_wheel_bit5_data)
            steering_wheel_bit6.append(data[5])
            steering_wheel_bit6_data['steering_wheel_bit6']=steering_wheel_bit6
            scipy.io.savemat('test.mat',steering_wheel_bit6_data)
         except usb.core.USBError as e:
            print("Error readin data: %s" %str(e))
            time.sleep(5)
            continue
  </code></pre>