importdata产生奇怪的输出与空白读文本文件时细胞和文本

17日视图(30天)
我想进口的附加文件matlab函数运行的结果。正如你所看到的,有一些空白细胞最后行文本和文件的开始。我只对数字数据感兴趣,这是一个16 x6矩阵txt文件。空的细胞是南。
Importdata能够区分文本和数值数据,然而,认为只有3列,因为有三个空白细胞在第一行。
如果我手动删除的文本行,叫readtable(),不管出于什么原因,有数字的前三行数据丢失。
我怎么能得到16 x6矩阵从空白单元格的文本文件中=南?
谢谢你!

接受的答案

克里斯·拉皮埃尔
克里斯·拉皮埃尔 2023年2月1日
你要考虑到你的文件的格式,并有可能进一步指定一些additiional设置得到你想要的。
  • 您的文件是固定宽度,而不是分隔。
  • 每一行6列不包含字段名
VariableNames = {“指数”,“exitFlag”,“f (x)”,“通路”,“F-count”,“最优”};
VariableWidths =[8、10、13日,11日,9日,14);
选择= fixedWidthImportOptions (“VariableWidths”VariableWidths,“VariableNames”,VariableNames);
选择。DataLines = 19 [4];
选择= setvartype(选择,“替身”);
数据= readtable (“command_window.txt”选择)
警告:列标题从文件被修改,使之有效MATLAB标识符表在创建变量名之前。最初的列标题保存在VariableDescriptions属性。
设置“VariableNamingRule”“保存”使用原始的列标题,表变量名。
data =16×6表
指数 exitFlag f_x_ iter F_count 最优 _____ ________ _____ ____ _________ __________1 -10南南14南2 3 1.239 e-09 39 40 3.484 e-06 3 3 3.028 e-22 45 46 2.174 e-12 4 -10南南南5 -10南南南6 3 5.749 e-13 17 18 5.438 e-08 7 -10南南南8 -10南南南9 -10南南南10 -10南南南11 -10南南南12 -10南南南13 -10南南南14 -10南南南15 -10南南南16 -10南南南
7评论
dpb
dpb 2023年2月2日
我也一样(检查w /“真实”程序员的编辑),但很多新手不熟悉其他工具集使用MATLAB表示。我有一个共享软件/免费软件版本的老短暂的编辑器,使用Windows那是我舒适的工具;使用简短自从近推出映射的关键是太根深蒂固的习惯别的东西。

登录置评。

答案(1)

dpb
dpb 2023年2月1日
> >选择= detectImportOptions (“command_window.txt”,“ExpectedNumVariables”6“NumHeaderLines”2,“ReadVariableNames”,1“VariableNamingRule”,“保存”);
> > readtable (“command_window.txt”选择)
ans =
18×6表
指数exitflagf (x)#iterF-count
______________________________
-10 14南南南
2 3 1.239 e-09 39 40 3.484 e-06
3 3 3.028 e-22 45 e-12 46 2.174
4 -10年4南南南
5 -10 7南南南
6 3 5.749 e-13 17 18 5.438 e-08
7 -10年3南南南
8 -10 2南南南
9 -10 5南南南
-10 1南南南
11 -10 2南南南
12 -10 3南南南
13 -10 5南南南
14 -10 1南南南
15 -10 2南南南
16 -10 2南南南
南南南南南南
3南南16南南
> >
将需要清理过去几记录索引顺序停止后……
另外,如果知道先天文件的长度,
> > tT = readtable (“command_window.txt”,“范围”,“三19”,“ExpectedNumVariables”6“VariableNamingRule”,“保存”)
tT =
16×6表
指数exitflagf (x)#iterF-count
______________________________
-10 14南南南
2 3 1.239 e-09 39 40 3.484 e-06
3 3 3.028 e-22 45 e-12 46 2.174
4 -10年4南南南
5 -10 7南南南
6 3 5.749 e-13 17 18 5.438 e-08
7 -10年3南南南
8 -10 2南南南
9 -10 5南南南
-10 1南南南
11 -10 2南南南
12 -10 3南南南
13 -10 5南南南
14 -10 1南南南
15 -10 2南南南
16 -10 2南南南
> >
在....截断的路上但这意味着知道第一个长度通常可能不是如此。
避免 importdata ——这是易于使用,但这是要付出代价的,尽管它的东西,你不一定知道它会与任何给定的文件。
或者以上,总有追索权回到解析通用文本文件基于逐行处理有些unconforming格式化机器生成的输出文件中关于变量名,处理缺失值,deliminters,等等,等等,等等,....一个通用的程序不能处理所有可能的排列它可能会发现没有一些klews…
1评论
SA-W
SA-W 2023年2月1日
产生的输出代码是错误的。例如,在第一行
-10 14南南南
正确的输出将是
-10南南14 NaN
这是完全相同的问题由importdata引起的

登录置评。

社区寻宝

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

开始狩猎!