【发布时间】:2015-08-28 05:06:09
【问题描述】:
我有一个包含 n 行和 5 列的文本文件 D 我想阅读。每行将代表一个向量。但是,如果值等于 NA,我想将其留空:
D:
122 12 10 NA NA
110 10 30 45 87
110 12 10 NA NA
..
我正在这样做:
bid = fopen(D,'r');
bfile = textscan(bid,'%d %d %d %s %s','TreatAsEmpty',{'NA'})
var=122;
IndVar=bfile {:,1}==var;
rest=bfile(:,[2:end])
vecVar=rest(IndVar)
我想从没有 NA 的行中获取向量: vecVar = [12 10]; [10 30 45 87]; [12 10];
我试试这个:
rest= rest(~isnan(rest));
我得到错误:
'cell' 类型的输入参数的未定义函数 'isnan'。
我已经玩了一个多小时了仍然无法弄清楚.. 任何帮助将不胜感激!
非常感谢!
【问题讨论】:
-
如果你在命令窗口中输入
size(rest),你会得到什么? -
@CST-Link size (rest) 给出 ans= 1 4. 虽然应该是 n-row X 4..
-
问题是,
textscan对于按列获取数据很有用,但您需要按行过滤数据。 -
@CST-Link 您可以建议任何特定命令吗?
-
不幸的是,textscan 很容易替换。致力于解决方案。同时,问题:只有最后两列可以包含
NA?还是全部?