2013-04-15 31 views
0

後我設法讓文本文件,並在MATLAB這樣的獨立:讀取和打印文本文件做一些轉換

技術0004 0FCF 19B1 0713 0003

技術0005 0FD9 19 B3 0712 0003

0002 0006 0FD0 19B5 0713 0004

該列表繼續進行多行。

現在我想要做的是繪製最後4列。但首先,我想將值從十六進制變爲十進制,然後使用函數來獲取實際值,因爲這些值是原始值。

f.e:0FCF和列的其餘部分必須從十六進制轉換爲十進制,然後使用函數:(decimalofthatvalue/4096)* 3來獲取實際值。 當這個轉換完成後,我想繪製整列。

有什麼想法?我認爲我想要做的事情非常簡單,但我在matlab中真的很新,而且我發現它很難!

在此先感謝!

+0

什麼你的意思做「我設法讓文本文件和獨立於像MATLAB:」?你已經有工作區中的數據了嗎? (那麼爲什麼把它寫入文本文件?) – Oleg

回答

0

使用一些for循環解析所有列,並使用hex2dec函數從十六進制轉換爲十進制。

例如:

HEX2DEC( '0FCF')

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 

這可能不是做的最好的方式,但它的簡單,就完事了

+0

我知道它可以用for完成。但事情是什麼我應該使用? –

相關問題