python与matlab通信方式

python与matlab数据传输

1.使用mat文件

python端程序

import scipy.io as sio
import numpy as np

# python读取.mat文件
load_fn = 'xxx.mat' #要读取的mat文件的路径
load_data = sio.loadmat(load_fn) #读取文件
print('输出结果为:', load_data)

# python 保存.mat文件
save_fn = 'D:\\data\\xxx.mat' #要保存的路径
# save_array = np.array([0])    #要保存的数据
save_array = 1
sio.savemat(save_fn,{'a':save_array})       #保存

# save_array_x = np.array([1,2,3,4])
# save_array_y = np.array([5,6,7,8])
# sio.savemat(save_fn, {'array_x': save_array_x, 'array_x': save_array_x})

matlab端程序

load('D:\\data\\xxx.mat');

就能读出a这个变量啦

2.使用网络

python端程序

import socket
import time

sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#IPV4,TCP协议
sock.bind(('192.168.88.157',54378))#绑定ip和端口,bind接受的是一个元组
sock.listen(5)#设置监听,其值阻塞队列长度,一共可以有5+1个客户端和服务器连接

a=[1]

while True:

    s=str(a)# 将发送数据转化为String
    connection,address = sock.accept()# 等待客户请求
    print("client ip is:",address)# 打印客户端地址

    buf = connection.recv(40960)# 接收来自客户端的数据,并存入buf
    print(buf.decode('utf-8'))#打印收到的数据

    connection.send(bytes(s, encoding="utf-8"))# 发送数据

    connection.close()# 关闭连接
    time.sleep(1)
 # 关闭服务器
sock.close()

matlab端程序

clear all;
clc
close all;

tcpclient = tcpip('192.168.88.157', 54378, 'Timeout', 60,'OutputBufferSize',10240,'InputBufferSize',10240);%连接这个ip和这个端口的UDP服务器
fopen(tcpclient);
fwrite(tcpclient,'please sent');%发送一段数据给tcp服务器。服务器好知道matlab的ip和端口
while(1) %轮询,直到有数据了再fread
    nBytes = get(tcpclient,'BytesAvailable');
    if nBytes>0
        break;
    end
end
receive = fread(tcpclient,nBytes);%读取tcp服务器传来的数据
fclose(tcpclient);
data=str2num(char(receive(2:end-1)')); %将ASCII码转换为str,再将str转换为数组
disp(data)
delete(tcpclient);

这样matlab就能收到data这个数据啦

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值