Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 想从TCP数据包中省略一些值吗_Matlab_Tcp_Processing - Fatal编程技术网

Matlab 想从TCP数据包中省略一些值吗

Matlab 想从TCP数据包中省略一些值吗,matlab,tcp,processing,Matlab,Tcp,Processing,我已经成功地创建了processing和matlab之间的tcp连接。我正在使用oscp5库来实现这一点。我正在发送一个包含3个浮点值的数组 但是在Matlab中,我得到了5个额外的值。请告知我如何省略这些值 请注意,我不能使用其他库 另外,有人建议我,在创建消息时,我给它指定了一个标签“/测试”。当matlab的服务器收到消息时,它将读取该消息以及oscP5汇编的包中的数据。所以,我必须教matlab如何解释这些数据。因此,我需要访问oscP5网站,查看java文档和源代码,以了解打包格式。这

我已经成功地创建了processing和matlab之间的tcp连接。我正在使用oscp5库来实现这一点。我正在发送一个包含3个浮点值的数组

但是在Matlab中,我得到了5个额外的值。请告知我如何省略这些值

请注意,我不能使用其他库

另外,有人建议我,在创建消息时,我给它指定了一个标签“/测试”。当matlab的服务器收到消息时,它将读取该消息以及oscP5汇编的包中的数据。所以,我必须教matlab如何解释这些数据。因此,我需要访问oscP5网站,查看java文档和源代码,以了解打包格式。这里是链接

您可以看到下面的代码

-------------Processing Code-------------
import oscP5.*;
import netP5.*;

OscMessage myMessage;
OscP5 oscP5tcpClient;

void setup() {
  size(640, 360);
  oscP5tcpClient = new OscP5( this, "141.44.219.204", 1234, OscP5.TCP);
}

void draw() {
  background(255);

    OscMessage myMessage = new OscMessage("test\");
    myMessage.add(new float[] {123.2, 134.5, 52.5}); ==>> Sent Message 

    oscP5tcpClient.send(myMessage);
    print(50+sin(a)*40.0);
  }
  -----------------------------------------------------------------

--------------------------MATLAB Code----------------------------
>> tcpipServer = tcpip('141.44.219.161',1234,'NetworkRole','Server');
>> fopen(tcpipServer)
>> data = fread(tcpipServer, 8 , 'float32')

data =

           0  ===>> want to omit
      0.0000  ===>> want to omit
           0  ===>> want to omit
    123.2000
    134.5000
     52.5000
      0.0000  ===>> want to omit
           0  ===>> want to omit

>> 
-----------------------------------------------------------------

您发送的确切值是多少?你得到的确切数值是多少?如果总是相同的附加值,你就不能自己跳过它们吗?不确定是否相关,但matlab文档建议,如果你想收集到“单个”精度变量,可以使用
'float32=>float32'
而不是
'float32'
。另外,我肯定是这样的,但是您确定您的机器中的java浮点是32位吗?(我认为情况并非如此,因此您可以检查)。此外,是的,打印
myMessage
在java中给出了什么,以及
fread(tcpipServer,'char=>char')
在matlab中给出了什么?(即,我想知道您的数据是否带有某种标题?@tasospapstyllanou….'float32=>float32'在fread()中不是有效的精度。[请共享您阅读过的链接,可能我缺少该链接]。另外,对于字符,matlab有fscanf(),但不确定。@KevinWorkman…我的实际意图是通过matlab处理和接收连续发送x和y坐标。但问题是我也得到了oscp5数据包标签(这是显而易见的)。我只是在寻找一种方法,我可以删除这个标签在第一位(我不知道如何),并将获得相关的数据只。是的,你是对的,在matlab中接收到全部数据后,我可以自己移除标签。你发送的确切值是多少?你得到的确切数值是多少?如果总是相同的附加值,你就不能自己跳过它们吗?不确定是否相关,但matlab文档建议,如果你想收集到“单个”精度变量,可以使用
'float32=>float32'
而不是
'float32'
。另外,我肯定是这样的,但是您确定您的机器中的java浮点是32位吗?(我认为情况并非如此,因此您可以检查)。此外,是的,打印
myMessage
在java中给出了什么,以及
fread(tcpipServer,'char=>char')
在matlab中给出了什么?(即,我想知道您的数据是否带有某种标题?@tasospapstyllanou….'float32=>float32'在fread()中不是有效的精度。[请共享您阅读过的链接,可能我缺少该链接]。另外,对于字符,matlab有fscanf(),但不确定。@KevinWorkman…我的实际意图是通过matlab处理和接收连续发送x和y坐标。但问题是我也得到了oscp5数据包标签(这是显而易见的)。我只是在寻找一种方法,我可以删除这个标签在第一位(我不知道如何),并将获得相关的数据只。是的,你是对的,在matlab中接收到全部数据后,我可以自己移除标签。