我设法制作文本文件并在matlab中分开:
0002 0004 0FCF 19B1 0713 0003
0002 0005 0FD9 19B3 0712 0003
0002 0006 0FD0 19B5 0713 0004
并且列表继续进行多行。
我现在要做的是绘制最后4列。但首先我想将值从十六进制变为十进制,然后使用函数来获取实数值,因为这些值是原始值。
f.e:0FCF和列的其余部分必须从十六进制转换为十进制,然后使用函数:(decimalofthatvalue / 4096)* 3取实数值。 当这个转换完成后,我想绘制整个列。
有什么想法?我认为我想要做的事情非常简单,但我在matlab中真的很新,我发现它很难!
提前致谢!
答案 0 :(得分:0)
使用for循环解析所有列,并使用hex2dec函数将十六进制转换为十进制。
例如:
HEX2DEC(' 0FCF&#39)
ans =
4047
编辑**
您不清楚如何处理数据。我假设您拥有文本文件中的所有数据,并且您正在从该文本文件将其导入MATLAB。我为你制定了一个简单的例子。在我的示例中,我使用您在问题中提供的数据并将其保存到名为text.txt的文本文件中。
[col1, col2, col3, col4, col5, col6] = textread('text.txt', ...
'%s %s %s %s %s %s', 3);
myData=horzcat(col1,col2,col3,col4,col5,col6);
myDecData=zeros(size(myData)); %allocate space for speed
RealValue=zeros(size(myData));
for i=1:size(myData,2)
for j=1:size(myData,1)
x=myData(j,i);
myDecData(j,i)=hex2dec(x);
RealValue(j,i)=(myDecData(j,i)/4096)*3;
end
end
%now plot columns
figure,plot(RealValue(:,3)); %this plots third column
这可能不是最好的方法,但它很简单并完成工作