我们如何在MATLAB R2015a的单元格数组中从字符串的开头和结尾删除'''
?假设我们有这个单元格数组:
当我们打开一个单元格时,我们有这个:
我希望将整个单元格数组转换为double(数字)。假设out单元格数组为final
。使用cellfun(@str2double,final)
会为所有单元格返回Nan
。 str2double(final)
也会返回Nan
。
PS。
命令提示符中的final
的10个最后元素具有以下结构:
ans =
''2310''
''2319''
''2313''
''2318''
''2301''
''2302''
''2303''
''2312''
''2304''
''2309''
答案 0 :(得分:2)
您可以不使用任何内容替换所有撇号字符,然后将str2double
应用于单元格数组中的每个单元格。
鉴于您的单元格存储在final
中,请执行以下操作:
final_rep = strrep(final, '''', '');
out = cellfun(@str2double, final_rep);
基本上,使用strrep
替换所有撇号字符,然后通过cellfun
将str2double
应用于单元格数组中的每个单元格。
鉴于上面的例子:
final = {'''2310'''
'''2319'''
'''2313'''
'''2318'''
'''2301'''
'''2302'''
'''2303'''
'''2312'''
'''2304'''
'''2309'''};
我们现在得到这个:
>> out =
2310
2319
2313
2318
2301
2302
2303
2312
2304
2309
>> class(out)
ans =
double
如您所见,数组的输出为double
,正如我们所期望的那样。