与readtable误差函数
20视图(30天)
显示旧的评论
我有一个非标准的文件格式,我想读并运行以下:
Y = readtable (fileID.name,“文件类型”,“文本”);
文件标识的结构。然而,我得到一个错误:
错误使用readtable(第197行)
一个错误发生在试图确定“readData”是一个函数
的名字。
注意:readtable检测以下参数:
“分隔符”,”、“,“HeaderLines”,,“ReadVariableNames”,真的,“格式”,”
为什么我得到这个错误?是什么
readData
吗?我找不到任何信息。如何绕过这个限制吗?这个函数
readtable
运行很好,没有错误,在MATLAB r2021b我的笔记本电脑,但是我只有2018年访问老版本在集群上,我使用和没有管理员权限。
编辑:
我将在最后一个例子在这里发表评论。
接受的答案
每•艾萨克森
2022年4月2日
编辑:每•艾萨克森
2022年4月2日
我认为整个文本文件和结果符合您的RAM。
“巨大的”对不同的人意味着不同的东西。这个函数读取和解析20 k线文件在0.1秒。
我认为你可以通过更换显著提高性能
parfor()的()。
% %
一个= cssm_ (“test_lammpstrj.txt”);
大小(一个)
(::3)
% %
%抽搐
% = cssm_ (test_lammpstrj_large。txt”);% 20003行
% toc
%运行时间是0.101381秒。
%运行时间是0.101189秒。
% %
函数num = cssm_ (ffs)
% %
fid = fopen (ffs,“rt”);
装备=重塑(从文件中读(fid,“*字符”),1,[]);
(~)=文件关闭(fid);
% %
cac = regexp(空空的,“单品:步伐\ n”,“分裂”);
len =大小(cac - 2);
num =南(11、7 len-1);% cac{1}是空的
为jj = 2:兰
ccc = textscan (cac {jj},' % d % d % d % d % d % d % d ',“Headerlines”8“CollectOutput”,真正的);
num (:,:, jj-1) = ccc {1};
结束
结束
0评论
答案(1)
沃斯
2022年4月2日
我不知道这个错误
readtable
是,但是这是一种读文本文件(我给的吗
扩展
. txt但是没关系)并返回一个单元阵列的表:
fid = fopen (“用法”);
=从文件中读数据(fid,“*字符”)”。;
文件关闭(fid);
C = split(数据,的项目:);
C =分裂(C (startsWith (C,“原子”)),换行符());
var_names =分裂(strtrim (C {1}));
C (:, [1]) = [];
T = cellfun (@ (x) array2table (x,“VariableNames”var_names(2:结束)),…
num2cell(排列(str2double(分裂(C)), (1 2 3)), [1 - 2]),…
“UniformOutput”、假);
T {:}
或者如果你想要一个3 d数值数组:
fid = fopen (“用法”);
=从文件中读数据(fid,“*字符”)”。;
文件关闭(fid);
C = split(数据,的项目:);
C =分裂(C (startsWith (C,“原子”)),换行符());
C (:, [1]) = [];
M =排列(str2double(分裂(C)), (1 2 3));
disp (M);