由于本人作死啊,用matlab写了个GUI,偏偏不想用matlab做分类(主要是找不到讨论的人,想跟上大部队,所以用python),就直接导致了如果想要实时性好一点只能想办法解决matlab和python数据传输问题。当时写GUI的时候,简单的查了一下matlab可以调用python,头脑简单的我非常想当然的没有进行后续了解,以至于连接的时候废了好多功夫!!!我真是非常爱写废话了,不喜勿喷!!只是想记录一下这几天饱受折磨的心情。
接下来直接说方法吧
方法一:通过文件
不要就实时的话可以采用下面的方法
https://blog.csdn.net/chenghtao/article/details/77962099
方法二:直接调用
其实我最倾向这个方法,但是不知道是环境问题还是有什么调用规则,简单的函数调用可以实现,但是我调用基于theano这个包实现分类没有成功,总报错没有这个模块,没有那个模块的,如果有调用成功的可以给我留言啊!!
matlab代码:
import py.t.*
P= py.sys.path;
if count(P,'C:\Users\zuiai\Desktop\t') == 0
insert(P,int32(0),'C:\Users\zuiai\Desktop\t');
end
% py.importlib.import_module('t.test1')
py.t.test1(3,5)
python代码:
def test1(a,b):
c=a+b
return c
if __name__ == '__main__':
res=test1(2, 3)
print('%d',res)
方法三:udp通信
https://blog.csdn.net/tiancai13579/article/details/53039437?locationNum=5&fps=1
参看了这篇
python代码:
# 设置服务器默认端口号
# 创建一个套接字socket对象,用于进行通讯
# socket.AF_INET 指明使用INET地址集,进行网间通讯
# socket.SOCK_DGRAM 指明使用数据协议,即使用传输层的udp协议
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
address = ('10.25.3.189', 4241)
# 为服务器绑定一个固定的地址,ip和端口
server_socket.bind(address)
# 接收客户端传来的数据 recvfrom接收客户端的数据,默认是阻塞的,直到有客户端传来数据
# recvfrom 参数的意义,表示最大能接收多少数据,单位是字节
# recvfrom返回值说明
# receive_data表示接受到的传来的数据,是bytes类型, receive_data.decode()解码,将bytes类型转换为字符串类型
# client_address 表示传来数据的客户端的身份信息,客户端的ip和端口,元组
# receive_data, client = server_socket.recvfrom(1024)
m=0
matrix=[0 for i in range(320)]
while m<320:
receive_data, client = server_socket.recvfrom(1024)
matrix[m]=int(receive_data.decode('utf8'))
print("%s,%d" % (client, int(receive_data.decode('utf8'))))
m=m+1
time.sleep(0.0001)
flag = 0
buf, addr = server_socket.recvfrom(100)
while flag < 1 :
a = 1
s = str(a) # 将数据转化为String
# buf, addr = server_socket.recvfrom(100)
server_socket.sendto(bytes(s), addr) # 将数据转为bytes发送给matlab的client encoding = "utf8"
print(s)
flag = 1
time.sleep(1)
flag=0
# 不再接收数据的时候,将套接字socket关闭
server_socket.close()
matlab代码:
方法四:通过post
http://www.360doc.com/content/18/0215/00/42576766_730035700.shtml
https://blog.csdn.net/elkfish/article/details/79199965
https://stackoverflow.com/questions/15182696/multiple-parameters-in-in-flask-approute
嗯~ o(* ̄▽ ̄*)o感觉像写了一篇总结~~ 还是好像知道怎么直接调用~~~