在MATLAB中从字符串的开头和结尾删除'''

时间:2015-08-11 21:20:04

标签: string matlab cell-array

我们如何在MATLAB R2015a的单元格数组中从字符串的开头和结尾删除'''?假设我们有这个单元格数组:

enter image description here

当我们打开一个单元格时,我们有这个:

enter image description here

我希望将整个单元格数组转换为double(数字)。假设out单元格数组为final。使用cellfun(@str2double,final)会为所有单元格返回Nanstr2double(final)也会返回Nan

PS。

命令提示符中的final的10个最后元素具有以下结构:

 ans = 
    ''2310''
    ''2319''
    ''2313''
    ''2318''
    ''2301''
    ''2302''
    ''2303''
    ''2312''
    ''2304''
    ''2309''

1 个答案:

答案 0 :(得分:2)

您可以不使用任何内容替换所有撇号字符,然后将str2double应用于单元格数组中的每个单元格。

鉴于您的单元格存储在final中,请执行以下操作:

final_rep = strrep(final, '''', '');
out = cellfun(@str2double, final_rep);

基本上,使用strrep替换所有撇号字符,然后通过cellfunstr2double应用于单元格数组中的每个单元格。

鉴于上面的例子:

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,正如我们所期望的那样。