当前位置: 首页 > article >正文

【matlab】matlab知识点及HTTP、TCP通信

1、矩阵运算

点乘:对于两个同维度的向量,点乘结果是这两个向量对应分量的乘积之和。

点除:是指对两个数组的对应元素进行除法运算。

点幂:表示元素对元素的幂运算。

>> A=[1,2,3;4,5,6];
B=[1,1,1;2,2,2]

>> D1=B.*A

D1 =

     1     2     3
     8    10    12

>> D2=B./A

D2 =

    1.0000    0.5000    0.3333
    0.5000    0.4000    0.3333

>> D3=B.^A

D3 =

     1     1     1
    16    32    64

2、变量查询

who:显示工作空间中的所有变量;

whos:查看工作空间中所有变量的详细属性; 

>> who

您的变量为:

A   B   D1  D2  D3  

>> whos
  Name      Size            Bytes  Class     Attributes

  A         2x3                48  double              
  B         2x3                48  double              
  D1        2x3                48  double              
  D2        2x3                48  double              
  D3        2x3                48  double

 3、矩阵元素提取引用操作

A(i:j, m:n) 表示由矩阵 A 的第 i 到第 j 行和第 m 到第 n 列交叉线上的元素组成的子矩阵。可利用冒号提取矩阵 的整行或整列。

4、矩阵建立

利用函数建立数值矩阵,reshape函数用于建立数值矩阵,diag函数用于产生对角阵。

>> x=1:15

x =

     1     2     3     4     5     6     7     8     9    10    11    12    13    14    15

>> y=reshape(x,3,5)

y =

     1     4     7    10    13
     2     5     8    11    14
     3     6     9    12    15

>> z=1:5

z =

     1     2     3     4     5

>> diag(z)

ans =

     1     0     0     0     0
     0     2     0     0     0
     0     0     3     0     0
     0     0     0     4     0
     0     0     0     0     5

矩阵的基本运算:

(1) 矩阵转置('或transpose函数);

(2) 矩阵加和减;

(3) 矩阵乘法;

(4) 矩阵除法 A\b=inv(A)*b;

(5) 矩阵的乘方 a^2。

>> A=[1 2 3; 4 5 6; 7 8 9]

A =

     1     2     3
     4     5     6
     7     8     9

>> B=A'

B =

     1     4     7
     2     5     8
     3     6     9

>> B = transpose(A)

B =

     1     4     7
     2     5     8
     3     6     9

5、数据转换

  • 去除字符串\r\n\t等符号
rec_str = {

	"time": "2024-8-16",

	"platformNum": 1,

	"platNull": 0

}


rec_str = strrep(rec_str, '\r', '');  % 去除\r
rec_str = strrep(rec_str, '\n', '');  % 去除\n
rec_str = strrep(rec_str, '\t', '');  % 去除\t
  • 将字符串转换成struct,提取key值对应的value值
jsonData = jsondecode(rec_str);
value = jsonData.platformNum;

6、基于tcp实现服务端程序

% 创建Server Socket
s = tcpip('0.0.0.0', 30000, 'NetworkRole', 'Server','ByteOrder','littleEndian');
% 等待客户端连接
s.OutputBufferSize=100000;
disp('等待客户端连接...');
fopen(s);
disp('客户端已连接');

while true    
    if s.BytesAvailable>0
        rec_data = fread(s, s.BytesAvailable);
       
        % 将接收到的数据转换为字符串
        rec_str = char(rec_data);
        disp(rec_str')
        rec_str = strrep(rec_str', '\r', '');  % 去除\r
        rec_str = strrep(rec_str, '\n', '');  % 去除\n
        rec_str = strrep(rec_str, '\t', '');  % 去除\t

        % 将字符串转换为结构体
        jsonData = jsondecode(rec_str);
        value = jsonData.platformNum;

        str = '{"name": "John", "age": 30, "city": "New York"}';
        %将字符串转换成json
        % json_obj = jsonencode(str);
        % disp(json_obj);
        fwrite(s, str);

        pause(0.1); % 防止密集轮询
       
    end
end
fclose(s);

7、HTTP通信

data = {'key1', 'value1', 'key2', 'value2'};
% 创建一个JSON对象
% jsonData = jsonencode(data);
 
% 设置weboptions
options = weboptions('ContentType', 'json','Timeout', 100);
 
% 上传JSON数据到指定URL
url = 'http://192.168.4.11:8080/4009'; % 替换为你的API端点
response = webwrite(url, data, options);
 
% 输出响应
disp(response);

if response.Status == 200
    disp("数据上传成功")

else
    disp("数据上传失败")
end

http://www.kler.cn/a/506817.html

相关文章:

  • 摄像头模块在狩猎相机中的应用
  • GitLab集成Jira
  • vue 纯前端导出 Excel
  • Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法)
  • TCP-IP详解卷 TCP的超时与重传
  • 【SH】Xiaomi9刷Windows10系统研发记录 、手机刷Windows系统教程、小米9重装win10系统
  • npm发布工具包+使用
  • windows11下 podman-desktop 复制插件文件 到 RabbitMQ 容器内,并启用
  • 安全规约、脱敏规范、敏感逻辑的保护方案、防止 SQL 注入
  • 25/1/16 嵌入式笔记 STM32F108
  • C语言结构体漫谈:从平凡中见不平凡
  • 《基于深度学习的多色光度巡天项目天文目标检测框架》论文精读
  • 1 使用EMIO
  • 【Axure】配色库
  • 5、docker-compose和docker-harbor
  • 电池预测 | 第21讲 基于Gamma伽马模型结合EM算法和粒子滤波算法参数估计的锂电池剩余寿命预测
  • python中自动化playwright录制功能跳过繁琐的系统登录操作
  • Git在add的时候出现error: unable to index file 的问题,导致add失败的问题解决
  • 大数据就业前景及待遇如何?
  • 打造更安全的Linux系统:玩转PAM配置文件
  • 为Hugo/Hexo设计的在线Markdown编辑器
  • Flutter 多终端测试 自定义启动画面​​​​​​​ 更换小图标和应用名称
  • RK3568-Linux应用学习记录
  • 复用类(2):代理、结合使用组合和继承
  • 三数之和力扣--15
  • Unity3d 实时天气系统基于UniStorm插件和xx天气API实现(含源码)