0

私はなんとかテキストファイルを作成し、そのようにmatlabで分離しました:

0002 0004 0FCF 19B1 0713 0003

0002 0005 0FD9 19B3 0712 0003

0002 0006 0FD0 19B5 0713 0004

リストは何行も続きます。

今やりたいことは、最後の 4 列をプロットすることです。しかし、最初に値を 16 進数から 10 進数に変換してから、関数を使用して実際の値を取得したいと考えています。

fe: 0FCF と残りの列を 16 進数から 10 進数に変換してから、関数 (decimalofthatvalue/4096)*3 を使用して実際の値を取得する必要があります。この変換が完了したら、列全体をプロットしたいと思います。

何かご意見は?私がやろうとしていることは本当に簡単だと思いますが、私はmatlabが初めてで、とても難しいと思います!

前もって感謝します!

4

1 に答える 1

0

いくつかの for ループを使用してすべての列を解析し、hex2dec 関数を使用して 16 進数から 10 進数に変換します。

元:

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

これは最善の方法ではないかもしれませんが、シンプルで仕事を終わらせることができます

于 2013-04-15T19:22:19.123 に答える