0

我设法在matlab中制作文本文件并像这样分开:

0002 0004 0FCF 19B1 0713 0003

0002 0005 0FD9 19B3 0712 0003

0002 0006 0FD0 19B5 0713 0004

而且这个列表还有很多行。

我现在要做的是绘制最后 4 列。但首先我想将值从十六进制转换为十进制,然后使用函数获取实际值,因为这些值是原始的。

fe: 0FCF 和该列的其余部分必须从十六进制转换为十进制,然后使用函数: (decimalofthatvalue/4096)*3 取实际值。完成此转换后,我想绘制整个列。

有什么想法吗?我认为我正在尝试做的事情非常简单,但我在 matlab 中真的很新,我发现它很难!

提前致谢!

4

1 回答 1

0

使用一些 for 循环解析所有列,并使用 hex2dec 函数将十六进制转换为十进制。

前任:

hex2dec('0FCF')

答案=

    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

这可能不是最好的方法,但它很简单并且可以完成工作

于 2013-04-15T19:22:19.123 回答