Matlab从记事本中读取和绘制文本文件数据,

时间:2012-11-25 08:17:45

标签: matlab text text-files notepad

我试图通过Matlab读取我的数据然后绘制它,但是使用fscanf和/或textscan我的代码将文件作为一个数组读取并逐个将数据作为一个字符来实现它无法策划。它就像每个char / integer是一个数组。这是我的数据的样子:

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

我想分别绘制时间数据与伏特和其他通道。有人可以帮忙吗?我知道这里的数据看起来不对,但是每个通道都有两组数据。

1 个答案:

答案 0 :(得分: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');