Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我正在尝试通过MATLAB将数字传感器连接到计算机。
我首先向传感器发送数据请求,然后传感器以六字节流进行答复。 MATLAB像这样读取传感器: data1 = fscanf(obj1, '%c', 6); 我确切知道数据的内容应该是什么,但是我不知道如何读取MATLAB生成的数据包中的数据。 数据包( data1 )仅是6个字节,但是如何将每个元素作为整数访问呢? 我之前从未接触过MATLAB编程,所以有点迷路。 附带问题: MATLAB的数据%c , %s , %c\n和%s\n是什么意思?我尝试搜索,但找不到任何东西。 回答: 格式说明符%c表示FSCANF正在读取六个字符。您应该能够使用DOUBLE函数将这些字符转换为整数值: data1 = double(data1); 现在data1应该是包含整数值的六元素数组。您可以通过索引数组来访问每个数组 : a = data1(1); %# Gets the first value and puts it in a 如果要合并data1的值对,以使一个值代表数字的最高8位,而一个值代表数字的最低8位,则应执行以下操作: a = int16(data1(1)*2^8+data1(2)); 上面使用data1(1)作为高位,而data1(2)作为低位,然后将结果转换为INT16类型。您也可以取消对INT16的调用,仅将结果保留为DOUBLE类型(它存储的值仍然是整数)。 格式说明符%s用于读取字符串,直到遇到空白为止。我在上面链接的FSCANF文档中讨论了格式说明符。 更多&回答... |
![]() |
![]() |