1

Matlab でデータを読み取ってプロットしようとしていますが、fscanf や textscan を使用するコードでは、ファイルが 1 つの配列として読み取られ、データを 1 つずつ文字として取得するため、プロットが不可能になります。 . 各文字/整数が配列のようです。私のデータは次のようになります。

Time        Volt     Chan 1  chan 2   chan 3    chan 4   chan 5     chan 6   chan 7
3333.222        222.33   0.2334  0.3444   0.2233    0.4455   -0.733     0.3333   0.12345
3333.222        0.2323   0.4566  0.3456   0.2453    0.4563   -0.753     0.2356   0.23455

時間データ対ボルトと他のチャンネルを別々にプロットしたいと思います。誰でも助けることができますか?ここではデータが間違っているように見えますが、各チャネルに 2 つのデータ セットがあります。

4

1 に答える 1

0

最初の行を除いて、ファイルの残りの部分はかなり整理されているようです。 を使用して最初の行を読んでから、次のようなものfgetlを使用して残りの行を読んでみてください。textscan

fid = fopen( filename );
firstLine = fgetl( fid );
C = textscan( fid, '%f', 9 );
volt = [];
tm = [];
ch = zeros(0, 7);
while ~isempty(C{1})        
    volt( end + 1 ) = C{1}(1);
    tm( end + 1 ) = C{1}(2);
    ch( end + 1, : ) = C{1}(3:end)';
    C = textscan( fid, '%f', 9 );
end
figure;
plot( tm , volt ); title('volt vs time');
figure;
plot( tm, ch ); legend({'c1', 'c2', 'c3', 'c4', 'c5', 'c6', c7'});
title('chnnels vs time');
于 2012-11-25T09:14:36.960 に答える