- 的打开外部文件文档指出,支撑材是一个整数文件标识符……。的变量支撑材不包含文件数据,它只是一个参考一个打开的文件。也是一个标量值。所以你的索引支撑材就好像它是一个数据数组没有任何意义。
- 过于复杂的方法阅读的文本文件:第一textscan,然后再次调用textscan cellfun,都只是为了避免一些头行吗?相反,你应该阅读textscan的文档,并使用HeaderLines选项,如下:
我怎么能把NaN值从一个矩阵?
4.906视图(30天)
显示旧的评论
迄今为止我的代码如下。我有代码,以便它跳过前19行,开始在20行。然而,我需要删除的NaN值等数据列=(10,0.04500,0;南南)为例。行我不得不删除NaN的运行时,它只是不删除它们。我不知道不工作。如何解决我的问题?
谢谢
fid = fopen (“filename.txt”);
行= textscan (fid,' % s ',“分隔符”,' \ n ');
文件关闭(fid);
列= cellfun (@ (x) textscan (x,' % f ',“分隔符”,' \ t ',“CollectOutput”,1)…
、行{1}(20:最终,:));
fid检测器isnan (fid (: 1)):) = [];
0评论
接受的答案
Stephen23
2015年2月18日
编辑:Stephen23
2020年8月15日
的代码有多个问题需要解决。这几件事情改善:
fid = fopen (“filename.txt”,“r”);
data = textscan (fid检测器,' % f ',“分隔符”,' \ t ',“HeaderLines”,20);
fclose (fid)
我也删除了
CollectOutput
选择,因为这是多余的,如果只有一个格式说明符。出于同样的原因,分隔符也没有意义。如果你有多个值每一行,那么你需要指定的
formatSpec
:在文档的例子有很多。
从R2018b开始,您可以使用“rmmissing”功能,将“NaN”值从一个数组。例如,考虑以下几点:
一个=[1南2];
B = rmmissing (A)
结果是向量B = [1 - 2]。
在R2018a和早些时候,使用“isnan”功能:
一个=[1南2];
B = (~ isnan ())