Hello, I come here to give my contribution on the CyUSB.dll library linking problem in MATLAB, first of all, make sure that the CyUSB.dll class library is the latest 1.2.3.0(EZ-USB FX3 SDK), install the latest drivers for the proper functioning of the device. Read carefully the Cypress CyUSB .NET DLL programmer's reference manual, in the C# language, the 'as' operator is used for casting objects in another class, in Matlab it is somehow done automatically I think.
Use methodsview() to see what a method signature looks like for each class you want to use: methodsview(device), methodsview(outEndpoint), etc.
Try to run according to the code below, on my data acquisition device which contains the chip cy7c68013a-56pvxc it worked correctly, my device is a high-speed USB 2.0 device and transmits packets in bulk transfers (512 bytes). You can change the size of packets on each endpoint using method in a class, do it correctly and carefully.
asm = NET.addAssembly('C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\bin\CyUSB.dll');
usbDevices = CyUSB.USBDeviceList(CyUSB.CyConst.DEVICES_CYUSB);
device=usbDevices.Item(1204,241);
outEndpoint = device.EndPointOf(2);
inEndpoint = device.EndPointOf(134);
outEndpoint.TimeOut = 1000;
inEndpoint.TimeOut = 1000;
buf = zeros(1, XFERSIZE,'uint8');
inData_cast = zeros(1,len);
data_out = zeros(1, ct_loop*len);
[~,inData_raw{i},~] = inEndpoint.XferData(buf, len);
inData_cast = cast(inData_raw{i}, 'uint8');
data_out(ct_bgn : ct_end) = inData_cast;