我无法使用matlab2014a中的函数readtable()处理for循环中的文件序列
我试图使用readtable()函数在for循环中处理文本文件(test1.txt,test2.txt,…),但在第一次迭代后,我得到警告“警告:修改变量名称使其成为有效的MATLAB标识符”,并且我的所有数据都转换为字符。我有以下代码:我无法使用matlab2014a中的函数readtable()处理for循环中的文件序列,matlab,for-loop,dataset,text-files,Matlab,For Loop,Dataset,Text Files,我试图使用readtable()函数在for循环中处理文本文件(test1.txt,test2.txt,…),但在第一次迭代后,我得到警告“警告:修改变量名称使其成为有效的MATLAB标识符”,并且我的所有数据都转换为字符。我有以下代码: **for i=1:2 ds = readtable(['test', num2str(i),'.txt'],'delimiter','tab') Fn= ds.Fs(isfinite(ds.Fn)) end** 在第一次迭代之后,我得到了
**for i=1:2
ds = readtable(['test', num2str(i),'.txt'],'delimiter','tab')
Fn= ds.Fs(isfinite(ds.Fn))
end**
在第一次迭代之后,我得到了预期的数据:
ds=
Fn Fs Fd p____uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu______
0 0.055556 0 110.28
0.5 0.94934 0 NaN
0.5 0.45286 0 NaN
NaN 0.71672 0.25 NaN
NaN 0.79408 0.55 NaN
NaN 0.46686 0.2 NaN
NaN 0.5709 NaN NaN
NaN 0.17697 NaN NaN
以及:
Fn=
在第二次迭代之后,我得到如下结果:
FnFsFdP
_______________________________________
'0.0 0.055556244528144005 0.0 90.28'
'0.3 0.9493420509530995 0.0 '
'0.7 0.4528552572364756 0.10 '
'0.7167208183133957 0.15 '
'0.7940837318176294 0.55 '
'0.46685901048550915 0.2 '
'0.5709037251710388 '
'0.27696701859413588 '
以及错误:无法识别的变量名“Fn”
我需要做的是将我的txt文件中的所有列(Fn、Fs、Fd、p)作为分离的向量。到目前为止,我还使用了dataset()和tbfread(),每次遇到完全相同的问题时。
如果你们能帮助我,我将不胜感激。您确定第二个文件标题行中的分隔符是“tab”而不是空格吗?是的,我所有文件中的分隔符都是tab。我只是检查了一下以确定。我解决了它!!非常感谢@Kostya!在你的建议之后,我检查了我的文件并运行了我的代码,但没有任何更改。所以我决定做一些更激进的事情。我删除了我的文件并重新创建了它们。这次一切顺利。我想定界符确实出了什么问题,我无法检测到。再次感谢你!不客气。祝你好运!
FnFsFdP
_______________________________________
'0.0 0.055556244528144005 0.0 90.28'
'0.3 0.9493420509530995 0.0 '
'0.7 0.4528552572364756 0.10 '
'0.7167208183133957 0.15 '
'0.7940837318176294 0.55 '
'0.46685901048550915 0.2 '
'0.5709037251710388 '
'0.27696701859413588 '