首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Textscan读取多行的问题

使用Textscan读取多行的问题
EN

Stack Overflow用户
提问于 2014-06-02 22:49:02
回答 1查看 790关注 0票数 0

我对使用Matlab导入数据有点陌生。基本上,我有一份Ascii文件。它有13行头行,以及765列和3500行数据。我试图将数据导入到Matlab中的3500x765矩阵中。我试过以下几种方法:

代码语言:javascript
复制
fileID = fopen('filename');
formatspec = [repmat('%f ', [1,765])];
raw_data=textscan(fileID,formatspec, 'Headerlines',13,'delimiter','\t');

它成功地跳过了13行头行。但是,它只给出了一个仅包含第一行数据的1x765矩阵。

也许我误解了我应该如何使用文本扫描,所以任何帮助获得我的其他3499行数据将是非常感谢的。

~谢谢

注意事项

数据文件本身的格式如下。前13行不包含数据本身。后面的所有行都包含与下面将要粘贴的数据集类似的数据集,扩展为700+列和3000+行。

Wyko ASCII数据文件格式0 1 1

X号3571

Y号765

块名类型长度值

波长7 4 72.482628

方面7 4 1

Pixel_size 7 4 0.00196

StageY 7 4 -0.048055

放大倍数8 8 5.05

StageX 7 4 0.214484

ScannerPosition 7 4 3490.000732

ScannerSpeed 7 4 3.165393

RAW_DATA 3 10927260

-10976.61035 -10977.07324 -10981.07422 -10985.6084…

-10967.41309 -10963.31836 -10966.75195 -10980.40723…

-10969.08496 -10976.03711 -10976.62988 -10964.23731…

-10974.12695 -10976.61133 -10979.2627 -10973.57813…

-10969.21094 -10966.56543 -10973.74512 -10983.41797…

-10970.18359 -10980.82715 -10968.00195 -10975.58594…

-10980.41016 -10982.39356 -10982.74316 -10974.51563…

-10972.31641 -10984.00488 -10987.89453 -10976.23633…

EN

回答 1

Stack Overflow用户

发布于 2014-06-02 23:09:41

我认为下面的工作,但我没有Matlab在这台机器上测试出来。

代码语言:javascript
复制
 fileID = fopen('filename');
 formatspec = [repmat('%f ', [1,765])]; 
 raw_data = new_data = textscan(fileID,formatspec, 'Headerlines',13,'delimiter','\t');

 while ~feof(fileID)
    new_data = textscan(fileID,formatspec,'delimiter','\t');
    raw_data = [raw_data; new_data]; 
 end

 fclose(fileID);

请注意,这不是一种特别有效的方法。如果标头行给出了数组的大小,则可能需要使用零创建适当大小的数组,然后将数据读入数组中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24004509

复制
相关文章

相似问题

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