matlab读取csv文件的几种方法

04-13 1014阅读

什么是CSV文件

csv是最通用的一种文件格式,它可以非常容易地被导入各种PC表格及数据库中。此文件,一行即为数据表的一行。生成数据表字段用半角逗号隔开。csv文件用记事本和excel都能打开,用记事本打开显示逗号,用excel打开,没有逗号了,逗号都用来分列了,还可有Editplus打开。

matlab读取csv文件的几种方法
(图片来源网络,侵删)

具体可看:百度安全验证

利用matlab将txt文件批量转excel文件的样例程序 

怎样用matlab打开csv文件

1,实用csvread()函数

1、M = csvread('filename')

2、M = csvread('filename', row, col)

3、M = csvread('filename', row, col, range)

第一种方法中,直接输入文件名,将数据读到矩阵M中。这里要求csv文件中只能包含数字。

第二种方法中,除了文件名,还指定了开始读取位置的行号(row)和列号(col)。这里,行号、列号以0开始计数。也就是说,row=0, col=0表示从文件中第一个数开始读。

第三种方法中,range限定了读取的范围。range = [R1 C1 R2 C2],这里(R1,C1)是读取区域的左上角,(R2,C2)是读取区域的右下角。在使用这种方法时,要求row, col等于range中的前两项。

注意:csv文件中的空项,读到矩阵中时,会初始化为0.

给定一个csvlist.csv文件,其内容如下

   02, 04, 06, 08, 10, 12

   03, 06, 09, 12, 15, 18

   05, 10, 15, 20, 25, 30

   07, 14, 21, 28, 35, 42

   11, 22, 33, 44, 55, 66

例1.1  读取整个文件

csvread('csvlist.csv')

ans =

     2     4     6     8    10    12

     3     6     9    12    15    18

     5    10    15    20    25    30

     7    14    21    28    35    42

    11    22    33    44    55    66

例1.2  读取第2行以下,第0列以右区域的数据

m = csvread('csvlist.dat', 2, 0)

m =

     5    10    15    20    25    30

     7    14    21    28    35    42

    11    22    33    44    55    66

例1.3  读取第2行以下,第0列以右,第3行以上,第3列以左区域的数据

m = csvread('csvlist.dat', 2, 0, [2,0,3,3])

m =

     5    10    15    20

     7    14    21    28

2、使用textscan函数

在使用textscan函数前必须用fopen函数打开CSV文件。textscan函数读取的结果会存在cell数组中。

调用格式

C = textscan(fid, 'format')

C = textscan(fid, 'format', N)

C = textscan(fid, 'format', param, value, ...)

C = textscan(fid, 'format', N, param, value, ...)

C = textscan(str, ...)

[C, position] = textscan(...)

关于textscan函数的具体用法见help textscan。

3、当成数据库使用

具体方法可以去百度“matlab  数据库编程”

4,使用importdata('myfile.cvs')
5,使用fgetl()函数,当成普通的txt文件读取。

fidin=fopen('test.txt');                               % 打开test2.txt文件             

fidout=fopen('mkmatlab.txt','w');                       % 创建MKMATLAB.txt文件

while ~feof(fidin)                                      % 判断是否为文件末尾               

    tline=fgetl(fidin);                                 % 从文件读行   

    if double(tline(1))>=48&&double(tline(1))

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]