在进行一些转换后,在matlab中读取并绘制文本文件

时间:2013-04-15 19:15:05

标签: file matlab text

我设法制作文本文件并在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中真的很新,我发现它很难!

提前致谢!

1 个答案:

答案 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

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