Arrays 如何在Matlab中从字符数组中删除NaN
尝试使用cellfun从Matlab中的字符数组中删除NaN,但我没有任何运气。错误消息显示:使用cellfun时出错 输入#2应该是一个单元格数组,而不是char 我正在尝试从.csv文件中读取数据,下面是相关的代码片段:Arrays 如何在Matlab中从字符数组中删除NaN,arrays,character,nan,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'
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步骤中获得一致的维度。应该是:cell1(cellfun(@(cell1)any(isnan(cell1)),cell1))=[];应该是:cell1(cellfun(@(cell1)any(isnan(cell1)),cell1))=[];