如何从Matlab

时间:2017-04-03 19:29:42

标签: arrays character nan

尝试使用cellfun从Matlab中删除字符数组中的NaN,但是没有运气。错误消息说:使用cellfun时出错 输入#2应该是一个单元格数组,而不是char。

我正在尝试从.csv文件中读取数据,下面是相关的代码片段:

clear all

%import atmospheric data in text format **TAFT**
fid_atm = fopen('C:\Filepath\file.csv');
atm = textscan(fid_atm,['%s%f%s%s%s',repmat('%',1,203)],'headerlines',1, 'delimiter', ','); %%Added Delimiter%%

%convert cell to character in atmospheric data
cell1 = char(atm{1,3});

cell1(cellfun(@(x) any(isnan(cell1)),cell1)) = []; %this line is where the error message occurs

我需要从cell1中删除NaN,因为在下一步中我将时间转换为秒,但是当我这样做时,矩阵的维度不同意:

%time into seconds
time_atm = str2num(cell1(:,1:2))*3600 + str2num(cell1(:,4:5))*60 + str2num(cell1(:,7:8));

因此,由于cellfun无法正常工作,如何从cell1中删除NaN?我想通过删除NaN,我会在time_atm步骤中得到一致的维度。

0 个答案:

没有答案