刚开始学习matlab的时候,被它的强大功能震惊到了,但是嗫,那些发挥强巨大力量的函数看起来怎么那么奇怪(刚开始的感觉,毕竟接触一个事物都是从陌生到熟悉),比如很基本的读写文本的函数,csvwrite,csvread等。我有一个习惯,就是找到那些缩写的东西的全称,于是就有了这篇文章。本文不仅写出了标题中这几个函数的函数名的全称而且详细介绍了它们的功能。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
我是帅气的分割线
1.csvwrite 写入逗号分隔值文件,csv是comma separated values的缩写。
语法与功能: csvwrite(filename,M)
将矩阵 M
作为逗号分隔值写入 filename
中。将 filename
指定为字符向量或字符串,例如 'csvlist.dat'
或 "csvlist.dat"
。
csvwrite(filename,M,row,col)
将矩阵 M
写入以指定行和列偏移开始的 filename
中。行和列参数从零开始,因此 row=0
和 C=0
指定文件中的第一个值。
示例:
以下示例根据矩阵 m
创建一个逗号分隔值文件。
m = [3 6 9 12 15; 5 10 15 20 25; ...
7 14 21 28 35; 11 22 33 44 55];
csvwrite('csvlist.dat',m)
type csvlist.dat
3,6,9,12,15
5,10,15,20,25
7,14,21,28,35
11,22,33,44,55
下一个示例将矩阵写入从列偏移 2
开始的文件。
csvwrite('csvlist.dat',m,0,2)
type csvlist.dat
,,3,6,9,12,15
,,5,10,15,20,25
,,7,14,21,28,35
,,11,22,33,44,55
2.csvread 读取逗号分隔值 (CSV) 文件。
语法与功能: M=csvread(
将逗号分隔值 (CSV) 格式化文件读入数组 filename
)M
中。该文件只能包含数值。
M=csvread(
从行偏移量 filename
,R1
,C1
)R1
和列偏移量 C1
开始读取文件中的数据。例如,偏移量 R1=0
、C1=0
指定文件中的第一个值。
M=csvread(
仅读取行偏移量 filename
,R1
,C1
,[R1
C1
R2
C2
])R1
和 R2
及列偏移量 C1
和 C2
界定的范围。例如,偏移量R1=1,C1=0,R2=2,C2=2指定从文件读取行偏移量为1和2及列偏移量为0和2界定的矩阵。说通俗点,就是从文件中读取从第1行到第2行,第0列到第2列框定的元素组成一个新的矩阵,叫做M。(注意矩阵都是用数组存储的,起始行和列都是从0开始的)
示例: M=csvread(
读取整个CSV文件filename
)
创建一个名为 csvlist.dat
的包含逗号分隔值的文件。
02, 04, 06, 08
03, 06, 09, 12
05, 10, 15, 20
07, 14, 21, 28
读取文件中的数值。
filename = 'csvlist.dat';
M = csvread(filename)
运行结果:M =
2 4 6 8
3 6 9 12
5 10 15 20
7 14 21 28
M=csvread(
从特定行和列偏移量开始读取 CSV 文件filename
,R1
,C1
)
从上一个示例中描述的文件读取从第一行下方两行开始的矩阵。
M = csvread('csvlist.dat',2,0)
运行结果:M =
5 10 15 20
7 14 21 28
M=csvread(
从 CSV 文件读取特定范围的数据filename
,R1
,C1
,[R1
C1
R2
C2
])
从第一个示例中描述的文件读取行偏移量 1 和 2 及列偏移量 0 和 2 界定的矩阵。
M = csvread('csvlist.dat',1,0,[1,0,2,2])
运行结果:M =
3 6 9
5 10 15
3.dlmwrite 将矩阵写入到 ASCII 分隔文件,dlm是delimiter的缩写。
语法与功能:
dlmwrite(
将数组 filename
,M
)M
中的数值数据写入一个 ASCII 格式的文件 filename
,并使用默认分隔符 (,
) 分隔各数组元素。如果文件 filename
已存在,则 dlmwrite
将覆盖该文件。
dlmwrite(
将数据追加到现有文件 filename
,M
,'-append')filename
的末尾。
dlmwrite(___,
使用一个或多个名称-值对组参数另外指定分隔符、换行符、偏移量和精度选项。Name,Value
)
dlmwrite(
将数组 filename
,M
,delimiter
)M
写入文件 filename
,并使用指定分隔符 delimiter
分隔各数组元素。
dlmwrite(
从目标文件中指定的第 filename
,M
,delimiter
,row
,col
)row
行和第 col
列开始写入数组。前导行和列 用 delimiter
分隔的空元素填充。
4.dlmread 将 ASCII 分隔的数值数据文件读取到矩阵
语法与功能:
M=dlmread(
将 ASCII 分隔的数值数据文件读取到矩阵 filename
)M
。dlmread
函数从该文件中检测到分隔符,并将重复的空白视为一个分隔符。
M=dlmread(
使用指定的分隔符读取该文件中的数据,并将重复的分隔符视为单独的分隔符。filename
,delimiter
)
M=dlmread(
从行偏移量 filename
,delimiter
,R1
,C1
)R1
和列偏移量 C1
开始读取。例如,偏移量 R1=0
、C1=0
指定文件中的第一个值。
要指定行和列的偏移量而不指定分隔符,请将空字符用作占位符,例如 M = dlmread(filename,'',2,1)
。
M=dlmread(
仅读取行偏移量 filename
,delimiter
,[R1
C1
R2
C2
])R1
和 R2
及列偏移量 C1
和 C2
界定的范围。
示例: M=dlmread(
读取整个带分隔符的文件 filename
)
读取示例文件 count.dat
。
M = dlmread('count.dat')
运行结果: M = 14×3
11 11 9
7 13 11
14 17 20
11 13 9
43 51 69
38 46 76
61 132 186
75 135 180
38 88 115
28 36 55
12 12 14
18 27 30
18 19 29
17 15 18
M=dlmread(
从特定行和列偏移量开始读取带分隔符的文件filename
,delimiter
,R1
,C1
)
创建一个名为 dlmlist.txt
的文件,其中包含列标题和空格分隔值。
test max min direction
10 27.7 12.4 12
11 26.9 13.5 18
12 27.4 16.9 31
13 25.1 12.7 29
读取文件中的数值。指定空格分隔符、行偏移量 1 和列偏移量 0。
filename = 'dlmlist.txt';
M = dlmread(filename,' ',1,0)
M =
10.0000 27.7000 12.4000 12.0000
11.0000 26.9000 13.5000 18.0000
12.0000 27.4000 16.9000 31.0000
13.0000 25.1000 12.7000 29.0000
M=dlmread(
读取带分隔符的文件中的特定范围 filename
,delimiter
,[R1
C1
R2
C2
])
创建一个名为 dlmlist.txt
的文件,其中包含列标题和空格分隔值。
test max min direction
10 27.7 12.4 12
11 26.9 13.5 18
12 27.4 16.9 31
13 25.1 12.7 29
仅读取文件中最后两行的数值数据。
M = dlmread('dlmlist.txt',' ',[3 0 4 3])
M =
12.0000 27.4000 16.9000 31.0000
13.0000 25.1000 12.7000 29.0000