Matlab:如何讀取CSV文件以及如何讀取帶有字符串?dāng)?shù)據(jù)項的CSV文件
CSV,逗號分開的文件,如果能快速的讀取這些文件中的數(shù)據(jù),無疑會幫助我們解決很多問題。?
1、 只有數(shù)據(jù)的CSV文件,CSV file that includes only numbers.?
As an example, create a text file, named as 'data.csv' if you prefer, which includes the following data with any editor you like.
1,??2,??3,??4 5,??6,??7,??8 9,??0,??1,??2
? ?1) Read all the data into a 3X4 matrix.
Mat?=?csvread('data.csv'); disp(Mat);
? 2) Read part of the data with specification of the start index. What is important is the data is accessed from index 0 in the direction of row and column.
Mat?=?csvread('data.csv',?1,?2); disp(Mat);
Result showing below.
7?????8 1?????2
? 3) Read only the specified range.?
Mat?=?csvread('data.csv',?0,?1,?[0,1,2,2]); disp(Mat);
Note the starting index you specified in the second and third parameters is the same with the first two arguments in the fourth parameter matrix.?
2、 How to read a CSV file containing string data items.?
Create a file, named as 'datastr.csv' if you like. Add the following data.?
1,?2,?3,?Mine 4,?5,?6,?Yours 7,?8,?9,?His
One who try to use csvread shall encounter frustration. :(?
I propose another solution to solve this case.?
fid?=?fopen('datastr.csv'); dcells?=?textscan(fid,?'%f,?%f,?%f,?%s'); fclose(fid); dcellneeds?=?dcells(1:3); Mat?=?cell2mat(dcellneeds); disp(Mat);
The result showing below.
1?????2?????3 4?????5?????6 7?????8?????9
Try it and good luck. :)