matlab:作为TCP服务器,读取数据 V3版本

2023-11-06

和之前相比,增加数据处理和显示功能

(matlab的速度,比起调试助手,慢了一个数量级。Labview 也不行。看来关键时刻还是C++ 靠谱)

***

%程序说明:读取采集的卡,转化,显示
% 按照下面的IP地址建立一个服务端,0.0.0.0地址可以监听所有的请求的IP地址,所以就不用再写客户端的IP了
tcpip_server= tcpip('0.0.0.0',6000,'NetworkRole','server');

%%同理,接收端也要设置个缓冲区才能存下发过来的数据。
tcpip_server.InputBuffersize=512;

%打开服务器,直到建立一个TCP连接才返回;
fopen(tcpip_server);

%发送给采集卡的启动指令
fwrite(tcpip_server,"com_start_ch1");
 
disp("开始数据采集");
%读取数据。参数’tcpip_server.BytesAvailable/8‘代表着读取几个数据
xunhun_cishu=0;
A=[48];
try_times=1000;
for i=1:try_times
    pause(0.005);%每次读取之前等待0.02s,随意设置
    try     %因为fread()在缓冲区没有数据的时候读取会报错,因此用try—catch语句忽略这种错误,直到读取到数据。
        dataReceive=fread(tcpip_server, tcpip_server.BytesAvailable, "char");
        B=transpose(dataReceive);%数组转置
        %disp(B);
        xunhun_cishu=xunhun_cishu+1;
        A = [A B];%数组拼接
    catch
       %gsz_ValuesReceived= tcpip_server.ValuesReceived%查看读取出的数据数量,如果没有读到,返回0;
    end
end



disp("开始数据处理");
xiabiao_tmp=1;
double_shuzu_gsz=[0.0];
for  j=1:length(A)
    if 10==A(j)
        double_shuzi=A(1,xiabiao_tmp:j);%提起原始十进制数字
        char_tmp='';
        for m=1:length(double_shuzi)
            char_tmp=[char_tmp,char(double_shuzi(m))];%转成ASCII码数组
        end
        % disp(char_tmp);
        if  length(char_tmp)<10
            string_tmp=string(char_tmp);%char(里面是ASCII)转成String
            double_tmp=str2double(string_tmp);%String 强制转成double 数据
            double_shuzu_gsz=[double_shuzu_gsz double_tmp];
        end
        xiabiao_tmp=j+1;
    end
end

subplot(2,2,1)
plot(double_shuzu_gsz)
title("原始数据 加速度");

diff_double_shuzu_gsz=diff(double_shuzu_gsz);
subplot(2,2,2);%在各个分块位置创建坐标区
plot(diff_double_shuzu_gsz);
title("原始数据二次微分曲线-加速度");



fclose(tcpip_server);



后记:程序还有不完善的地方,不过matlab 本身就是做测试的,所以 到此为此了

正常运作的代码,肯定要到C++里面去实现了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab:作为TCP服务器,读取数据 V3版本 的相关文章

  • 整数的十进制表示形式中的分隔数字

    例如 我想将用户输入作为整数输入 45697 并将前两位数字存储在数组 向量或其他内容中 例如 4 5 6 9 7 这样我就可以使用一些函数调用来检查前两个值 4 5 并对它们进行计算 问题 我不知道如何存储恢复前两个值 有没有简单的函数调
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • 在 MATLAB 中创建共享库

    一位研究人员在 MATLAB 中创建了一个小型仿真 我们希望其他人也能使用它 我的计划是进行模拟 清理一些东西并将其变成一组函数 然后我打算将其编译成C库并使用SWIG https en wikipedia org wiki SWIG创建一
  • 频域和空间域的汉明滤波器

    我想通过在 MATLAB 中应用汉明滤波器来消除一维信号中的吉布斯伪影 我所拥有的是k1这是频域中的信号 我可以通过应用 DFT 来获取时域信号k1 s1 ifft ifftshift k1 该信号具有吉布斯伪影 现在 我想通过 A 乘以汉
  • Matlab Solve():未给出所有解决方案

    我试图找到两条曲线的交点 syms x y g x 20 exp x 30 3 5 1 sol x sol y solve x 22 3097 2 y 16 2497 2 25 y g x x y Real true 它只提供一种解决方案
  • 从 Java 运行 MATLAB 函数

    我在 MATLAB 中有一个 m 文件 我想从 Java 调用该文件 并以字符串或 Java 中的任何形式获取解决方案 这听起来很简单 但由于某种原因我无法让它发挥作用 我试过这个 matlab nosplash wait nodeskto
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • 从筛查乳腺 X 光检查数字数据库 (DDSM) 获取数据

    我正在尝试以可读格式获取 DDSM 数据集 有谁有 DDSM heathusf 程序的工作版本 可以在 Linux 或 Windows 上正常运行吗 我知道 DDSM 的 jpeg 程序有一个适用于 linux 的工作版本 位于http w
  • 将数据提示堆栈放在轴标签顶部,并在轴位置发生更改后更新轴标签

    此问题仅适用于 unix matlab Windows 用户将无法重现该问题 我在尝试创建位于 y 轴标签顶部的数据提示时遇到问题 下图很能说明问题 正如您所看到的 在 ylabel 附近创建的数据提示将到达 ylabel 文本的底部 而期
  • 在 MATLAB 中模拟 C++ 模板

    我试图找出创建 C 模板或 Java 通用对象的替代方案的最佳方法 出于多种不同的原因 我过去曾多次想这样做 但现在我想做的是为几个相关的类创建 saveobj 和 loadobj 函数 我的想法是 我想要一组通用的例程来创建默认结构 然后
  • 如何在Matlab中打印带有千位分隔符的整数?

    我想使用逗号作为千位分隔符将数字转换为字符串 就像是 x 120501231 21 str sprintf 0 0f x 但随着效果 str 120 501 231 21 如果内置fprintf sprintf做不到 我想可以使用正则表达式
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • FMINCON 的替代方案

    除了 fmincon 之外还有其他更快 更高效的求解器吗 我正在使用 fmincon 来解决特定问题 但对于中等大小的向量变量来说 我的内存不足 我也没有任何超级计算机或云计算选项可供使用 我知道任何替代解决方案仍然会耗尽内存 但我只是想看
  • 如何将数据传递给 MATLAB oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca
  • 如何在 MATLAB 中将矩阵元素除以列总和?

    有没有一种简单的方法可以将每个矩阵元素除以列和 例如 input 1 4 4 10 output 1 5 4 14 4 5 10 14 以下是执行此操作的不同方法的列表 使用bsxfun https www mathworks com he
  • Deploytool for MATLAB R2013b 不起作用,发生了什么变化?

    多年来我一直在使用集成deploytool为我的同事创建易于分发的 exe 文件 我几天前安装了R2013b 但无法使用deploytool不再了 尝试打包时的日志文件给出了以下内容 ant
  • matlab 中的动画绘图

    我正在尝试创建一个三角形的动画图 最终结果应该是十个三角形 后面跟着两个更大的三角形 后面跟着一条直线 使用matlab文档 https de mathworks com help matlab ref drawnow html 我最终得到
  • 保存符号方程以供以后使用?

    From here http www mathworks com help releases R2011a toolbox symbolic brvfu8o 1 html brvfxem 1 我正在尝试求解这样的符号方程组 syms x y

随机推荐

  • Python使用open读取文件时,如何不带换行符(\n)

    在读入一些用文本文档存储的数据时 一般都会在每一行存储一个数据 当我们用python自带的open和readlines读取每行的数据时 是会将每一行结尾的换行符 n 读入的 如下 test text txt内容 dataA dataB da
  • R语言 决策树--预测模型

    决策树 算法的目标是建立分类预测模型或回归预测模型 是一种预测模型 按目标不同可以细分为分类树和回归树 因为在展示的时候 类似于一棵倒置的树而得名 如下图 基本概念 根节点 如上图中最上方 一棵决策树只有一个根节点 中间节点 位于中间的节点
  • 找不到msvcp140.dll无法继续执行代码是什么原因?如何修复呢?

    想和大家分享一个常见的问题 找不到msvcp140 dll无法继续执行代码是什么原因 这个问题可能会让你感到困惑和烦恼 但是请放心 我会提供5个修复方法 并在最后告诉你修复完成以后需要注意的事项 找不到 msvcp140 dll 无法继续执
  • SylixOS系统如何永久修改IP地址

    1 进入 etc目录 找到startup sh文件 通过FTP下载该文件 2 用vs打开startup sh文件 将IP配置信息写入文件 保存 退出 我修改的是en2网口的IP地址 3 将修改后的startup sh文件通过FTP重新传输到
  • scrapy框架讲解

    简介 Scrapy是一个基于Python的开源异步爬虫框架 它被广泛用于从网页或App中 提取数据并将其保存到本地或数据库 由2 8版本以后提供了 http2 0协议的爬虫支持 扩展 scrapy是基于twisted框架开发而来 twist
  • C语言实现二叉树--->二叉查找树

    声明 代码实现都是自己写的 而且没有借鉴别人的代码 也没有看任何教程 只看了下二叉树的具体定义 知道大概是个什么东西 说这些只是为了说明下列代码实现肯定不是最优的 甚至在你们看来都是很垃圾的代码 不过没关系 因为这是我自己动脑筋写出来的 记
  • cmd /c /k

    cmd c dir 是执行完dir命令后关闭命令窗口 cmd k dir 是执行完dir命令后不关闭命令窗口 cmd c start dir 会打开一个新窗口后执行dir指令 原窗口会关闭 cmd k start dir 会打开一个新窗口后
  • 【串口屏】迪文的串口屏下载程序SD卡如何格式化

    用SD卡下载程序到迪文的串口屏需要先将SD卡格式化 而直接鼠标右键快速格式化这种方式不行 必须通过字符命令行格式化才行 即运行 cmd命令 具体如下 SD卡需要格式化成屏能识别的格式 开始 运行 输入cmd进入DOS系统 输入format
  • (二)vue.js的设计模式

    概述 Vue js在设计上采用mvvm模式进行设计 mvvm模式刚出来时一度的被人奉为神一般的模式 好像不懂mvvm模式就脱离了时代一样 什么是mvvm模式呢 Mvvm的全称为 Model View ViewModel m表示数据模型层 v
  • JavaScript 导出CSV文件

    列标题 逗号隔开 每一个逗号就是隔开一个单元格 var str 项目名称 项目信息 n for let i 0 i lt checkedItems length i var data checkedItems i str data Item
  • mysqlbackup企业版物理备份工具使用

    MySQL Enterprise Backup 简称MEB MEB8 对应的是MySQL8 0版本 8 0 28 备份工具的版本和MySQL版本要一致 MEB8 新特性 参考链接 https dev mysql com doc mysql
  • Java设计模式——建造者模式

    文章目录 为什么要有建造者模式 建造者模式 为什么要有建造者模式 工厂类模式提供的是创建单个类的模式 而建造者模式则是将各种产品集中起来进行管理 用来创建复合对象 所谓复合对象就是指某个类具有不同的属性 建造者模式与工厂模式的区别 工厂模式
  • 究竟什么是in-place?它在autograd当中怎么注意? 含grad函数的使用的一个小点

    1 a 0 b 0 是in place 2 a a 1 不是in place 3 a a permute 0 3 1 2 不是in place a view of a leaf Variable that requires grad is
  • 《国富论》笔记——货币

    上一个读书笔记 我简单发散思维到了货币 从以物易物到以贝壳作为货币举了一段例子 国富论 第四章就马上讲到了货币 并且补充了我很多未分析到的地方 货币的起源 当以物易物的时候 也许是因为我不再需要你的物品了 所以不再需要和你交换 你的东西只有
  • java实现的坦克大战(整理代码)

    本科做的小项目 现在整理一下 package T1 import java awt import javax swing import java awt event import java io import java util Vecto
  • 开学季征文

    目录 前言 一 自我介绍 二 前情回顾 2 1 摆烂大学生 2 2 从床上爬起来 三 新学期目标 1 刷算法 1 1 我与算法的缘 1 2 开始写题 1 3 为什么刷算法以及flag 1 4 计划参加一下蓝桥杯试试 2 学习英语和日语 2
  • 【区块链与密码学】第4-6讲:如何运用区块链实现防伪?

    本课堂用通俗易懂的系列内容为大家呈现区块链与密码学领域相关知识 这里有知识也有故事 从感兴趣到有乐趣 点宽课堂等你来学 课程首先从比特币着手进行入门介绍 再延伸至区块链的相关技术原理与发展趋势 然后深入浅出地依次介绍在区块链中应用的各类密码
  • vue 使用wangEditor

    1 npm install wangeditor core wangeditor editor wangeditor editor for vue 2 封装组件 MyEditor vue 这里是通过props content 将展示内容传入
  • 深度学习——Pay Attention to MLPs

    文章目录 前言 Gmlp 输入与输出 结构 个人理解 前言 前不久入职某大厂了 有点怀念无忧无虑的学生时代 入职后很快收到了第一个优化任务 算法岗的高不确定性确实会让人有一丝焦虑 目前体感来看 现有的深度学习模型性能非常依赖于数据质量 在数
  • matlab:作为TCP服务器,读取数据 V3版本

    和之前相比 增加数据处理和显示功能 matlab的速度 比起调试助手 慢了一个数量级 Labview 也不行 看来关键时刻还是C 靠谱 程序说明 读取采集的卡 转化 显示 按照下面的IP地址建立一个服务端 0 0 0 0地址可以监听所有的请