我正在尝试通过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文档中讨论了格式说明符。
更多&回答...