matlab中的fscanf的用法如下:
A=fscanf(fid,format)
[A, count]=fscanf(fid,format,size)
[A, count]=fscanf(fid,format,size)
个人感觉用的最多的是 这样的形式:
data = fscanf(fid,format,size);
其中data为读取内容的数组,大小由size决定。size是一个[m n]的向量,
m为行,n为列(注意,这里读取的顺序是按列优先排列的,不明白的话可以看
下面的例子),若n取inf表示读到文件末尾。fid为fopen打开文件的返回值,
format是格式化参数(像printf、scanf)。
举个小例子:
路径+文件名:d:\moon.txt
内容:13,1,3.4
3,2.1,23
1,12,2
4,5.4,6
现在为了读取moon中的数据存在一个数组里,可以用如下方法
fid=fopen('d:\moon.txt');
data_1 =fscanf(fid,'%f,%f,%f',[3,inf]) ;%这里得用单引号
data_2 =fscanf(fid,'%f,%f,%f',[2,inf])
data_3 =fscanf(fid,'%f,%f,%f',[2,2])
fclose(fid);
这时data_1, data_2, data_3分别是一个数组,其内容分别如下:
data_1
13 3 1 4
1 2.1 12 5.4
3.4 23 2 6
data_2
13 3.4 2.1 1 2 4
1 3 23 12 4,5 6
data_3
13 3.4
1 3
由此可见,读数据的时候,从多维数组的水平方向,一个一个读取,传递给新的数组时,从列方向优先。
fscanf用法:按行读取,按列存储
最新推荐文章于 2024-08-01 15:54:37 发布