文件和格式字符向量,当字符之间跳过

11视图(30天)
我得到一个“文件和格式化特征向量之间的不匹配”错误dlmread(我知道这是一个退休的函数,但我必须cross-compatible与matlab的旧版本)。我从文件读字符和数字数据,但是我相信我只限制dlmread函数数值数据。非数字数据的错误提到“场8号”,但我相信我限制列0到6…
我试着使用readtable相反,但似乎两个版本之间的不同的工作我需要使用matlab。
任何帮助或洞察力将不胜感激,谢谢!
错误如下:
错误使用dlmread(第147行)
不匹配的文件和格式特征向量。
麻烦阅读‘数字’字段从文件(行号1,字段
8)= = > Cnumber数量
25(计数),23日,23日,24日,22日,21日,25日,23日,25日,27日,23日,24日,19日,24日,24日,24日,22日,17日,19日,24日,23日,26日,24日,26日,27日,24日,23日,26日,25日,25日,21日,23日,22日,23日,26日,25日,26日,26日,24日,24日,28日,27日,24日,22日,24日,22日,22日,23日,24日,20日20日,22日,22日,21日,22日,26日,24日,29日,26日,25日2…
错误graphfunction(第144行)
测试= dlmread(文件名、”、“(1 0 (norows-1) 6));

接受的答案

Suvansh Arora
Suvansh Arora 2022年12月20日
一个方法是使用“textscan”功能或“readtable”功能。遵循以下提到的文档供参考:
1评论
吉利安莫法
吉利安莫法 2023年1月8日
非常感谢你的帮助;最后我使用了readtable函数。
对于其他的好处,读的特定行表使用以下格式:
selection1 ={: 1}][数据; %选择1
似乎是由2017年和2022年同样的方式读取。

登录置评。

答案(1)

沃尔特·罗伯森
沃尔特·罗伯森 2023年1月8日
csvread()调用dlmread ()
dlmread()调用textscan()传递一个格式规范”(空字符向量。)这是一个非法的可能性,但实际上它扫描第一行(跳过任何头后)和数字有多少数值字段。
当textscan()与“跳过,有规定 领先的 非文本列,但没有规定跳过 落后于 非文本列。dlmread方式()处理一系列列告诉textscan()跳过前适当数量的列,但其余的线读数字,然后dlmread()丢弃任何额外的列。这当然失败后如果有任何非数字列主要列被跳过。
这包括:潜在的修复
  • readtable(),有或没有规范范围
  • readmatrix()与规范范围
  • 调用textscan()自己的格式使用% * f为跳过跳过数字列和% * s文本列——或者使用% * (\ n)跳过一行的结束
  • 或自定义文件的处理,比如使用fileread()或readline(),然后使用模式匹配或正则表达式()来提取所需的数据

s manbetx 845


释放

R2022a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!