matlab和python的数据传输方式

        由于本人作死啊,用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感觉像写了一篇总结~~  还是好像知道怎么直接调用~~~

 

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值