天天看點

用matlab讀csv資料_Matlab讀取csv檔案csvread函數的使用

3.7

(3)

今天來說下如何使用Matlab讀取excel的csv檔案,這個有什麼用呢?想必理科生大機率都會用到示波器,去抓取一些電信号或者光信号,我們從示波器導出來的就是csv檔案或者圖檔檔案,而圖檔檔案我們無法處理。是以,一般導出csv檔案,可以用Matlab去處理資料。

用matlab讀csv資料_Matlab讀取csv檔案csvread函數的使用

Matlab幫助檔案

Matlab自帶了一個函數csvread來讀取csv檔案,關于這個函數的用法,可以在Matlab指令行視窗輸入如下指令擷取該函數的幫助資訊:help csvread

得到結果如下:csvread Read a comma separated value file.

M = csvread(‘FILENAME’) reads a comma separated value formatted file FILENAME. The result is returned in M. The file can only contain numeric values.

M = csvread(‘FILENAME’,R,C) reads data from the comma separated value formatted file starting at row R and column C. R and C are zero-based so that R=0 and C=0 specifies the first value in the file.

M = csvread(‘FILENAME’,R,C,RNG) reads only the range specified by RNG = [R1 C1 R2 C2] where (R1,C1) is the upper-left corner of the data to be read and (R2,C2) is the lower-right corner. RNG can also be specified using spreadsheet notation as in RNG = ‘A1..B7’.

csvread fills empty delimited fields with zero. Data files where the lines end with a comma will produce a result with an extra last column filled with zeros.

幫助檔案解釋

下面我們來解釋一下:

幫助檔案一共給了我們三種使用該函數的方式,該函數隻可以讀取數值。方法一:M = csvread(‘FILENAME’),讀取逗号分隔值格式的檔案名。結果直接傳回給M。是以,檔案隻能包含數值。

方法二:M = csvread(‘FILENAME’,R,C),從逗号分隔值格式的檔案中讀取資料(從R行和C列開始)。R和C從零開始,是以R=0和C=0指定檔案中的第一個值。即csv檔案中的第一行為該函數的第0行,csv檔案中的第一列為該函數的第0列。

方法三:M = csvread(‘FILENAME’,R,C,RNG),隻讀取由RNG=[R1 C1 R2 C2]指定的範圍,其中(R1,C1)是要讀取的資料的左上角,R2,C2)是右下角。也可以使用電子表格表示法指定RNG,如RNG=’A1..B7’。

大緻上,就是方法一讀取整個檔案,必須保證該檔案隻有數值内容,一般用不到這種方法,畢竟從示波器等導出的檔案中,一定會有描述内容,即各種機關等頭檔案,都是英文。

方法二,即從R行開始,C列開始,一直到結束的這個範圍内的數字,全部存入M,結果是一個矩陣,這種方式比較常用。

方法三,即從R1行C1列到R2行C2列之間讀取資料。

執行個體示範

下面,我們舉個例子吧。

假設我們的csv中的内容如下:假設我們檔案名稱為TEK001.csvname30.36

other50.40

80.62

100.75

120.89

Matlab讀取csv檔案csvread函數的使用,資料舉例方法一無效,因為檔案中包含非數字文本;

方法二:M = csvread(‘TEK001.csv’,0,1)表示從第0行第1列開始讀取資料,即從數字3到數字9全部讀取;M = csvread(‘TEK001.csv’,1,2)表示從第1行第3列開始讀取資料,即從數字0.4到數字9全部讀取。這裡,我們隻要知道Matalb裡的第幾行第幾列到檔案中即表示第幾+1行第幾+1列即可。

方法三:M = csvread(‘TEK001.csv’,0,1,[0 1 1 2])表示讀取第0行第1列到第1行第2列之間的數字,即3到0.4之間的數字;需要注意的是,數字起始點0,1前後必須一緻,即方法三中的RC必須與R1C1一樣。

相比來說,我還是喜歡方法二。

然後,接下來讀取完資料,就是資料處理了。主要是将M中的值指派給新元素,用于畫圖或處理,如下M = csvread('TEK001.csv', 1,3,[1 3 2000 4]);

x=M(:,1);

y=M(:,2);

[i,k]=size(M);

for j=1:i

if y(j)<2

y(j)=0;

else y(j)=5;

end

end

plot(x,y)

表示從1行第3列到第2000行第4列直接的數字存入M,對應csv檔案中的第2行第4列到第2001行第5列之間的數字,M得到一個20000行2列的矩陣。

第二行代碼表示把矩陣中的第一列指派給x。

第三行代碼表示矩陣中的第二列指派給y。

第四行代碼表示讀取舉證的行數與列數

第五行到第 十行,表示把y值中小于2的值等于0,其他保持不變

第十一行為以x為橫坐标,y為縱坐标作圖,意思性放個結果吧,如下圖:

用matlab讀csv資料_Matlab讀取csv檔案csvread函數的使用

送出評分

共計3人評分,平均3.7分

到目前為止還沒有投票~

很抱歉,這篇文章對您沒有用!

讓我們改善這篇文章!

告訴我們我們如何改善這篇文章?送出回報

原創文章,作者:古哥,如若轉載,請注明出處:https://iymark.com/program/matlab-csv-csvread.html