首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么textscan只读一行

为什么textscan只读一行
EN

Stack Overflow用户
提问于 2014-02-24 21:11:11
回答 2查看 3.7K关注 0票数 0

我正在尝试使用文本扫描读取csv文件。这些字段用',‘分隔。我使用了以下代码,但它只将一行数据读入矩阵W。

我也尝试了dlmread(),它得到了错误的字段数量。

该文件在linux下构造,matlab在linux下构造。

代码语言:javascript
复制
file_id = fopen('H:\data\overlapmatrices\cos.mat.10');
W = textscan(file_id, '%f', 'delimiter', ',' , 'EndOfLine', '\r\n');
fclose(file_id);
clear file_id;
EN

回答 2

Stack Overflow用户

发布于 2014-02-24 21:31:13

问题可能出在文件中如何表示行尾(另请参阅维基百科上的this article )。\r\n (回车和换行符的组合)在Windows上很常见,而\n (只有换行符)在Linux和其他Unix系统上是标准的。

但正如本所说,csvread可能是读取文件的更简单的方法。

票数 1
EN

Stack Overflow用户

发布于 2014-02-24 21:34:32

你可能想试试csvread,它应该能起到作用。

或者你可以总是做一些肮脏的事情,比如

代码语言:javascript
复制
fid = fopen( filename );
tline = fgetl(fid);
while ischar(tline) %or some other check
    %sscanf(tline...
    tline = fgetl(fid);    
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21988809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档