2012-11-25 72 views
1

我想通過Matlab讀取我的數據,然後繪製它,但與我的代碼使用fscanf和/或textscan該文件正在讀取爲一個數組,並採取數據一個接一個地作爲一個字符,這使得它無法繪製。這就像每個字符/整數是一個數組。這是我的數據看起來像:Matlab讀取和繪圖記事本中的文本文件數據,

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 

我想單獨繪製對戰伏的時間數據和其他渠道。誰可以幫忙?我知道這裏的數據看起來不對,但每個通道都有兩組數據。

+0

在方式格式化的txt文件,你報道?或以任何變量作爲標題和相關值作爲屬性以標準表格方式顯示? – fpe

+0

爲什麼不通過輸入數據集和預期(手動)輸出的屏幕截圖更新您的問題。這真的會有幫助,並稱我爲視覺:D – bonCodigo

回答

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');