代码之家  ›  专栏  ›  技术社区  ›  user7868794

删除字符串单元格数组的一部分

  •  0
  • user7868794  · 技术社区  · 7 年前

    >A_
    
    'CUST_1627_PI425479659'   'Pri-miR-100u2'         'u2'
    'CUST_2430_PI425479649'   'Pri-miR-L7a-3d'        'd'
    'CUST_226_PI425479649'    'Pri-miR-3130-4u1'      'u1'
    'CUST_1618_PI425479649'   'Pri-miR-147bu'         'u'
    'CUST_1449_PI425479659'   'Pri-miR-107u'          'u'
    'CUST_1546_PI425479659'   'Pri-miR-4299d1'        'd1'
    

    结果应该是这样的

    >A_
    
    'CUST_1627_PI425479659'   'Pri-miR-100'       'u2'
    'CUST_2430_PI425479649'   'Pri-miR-L7a-3'     'd'
    'CUST_226_PI425479649'    'Pri-miR-3130-4'    'u2'
    'CUST_1618_PI425479649'   'Pri-miR-147b'      'u'
    'CUST_1449_PI425479659'   'Pri-miR-107'       'u'
    'CUST_1546_PI425479659'   'Pri-miR-4299'      'd1'
    

    我试过用这种方法,但没用。

    s= {'u','u1','u2','d','d1'};
    
    for i=1:length(A_(:,2))
        A_(i,2)= erase(A_(i,2),s)
    end
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Sardar Usama    7 年前

    使用 regexprep '' .

    A_(:,2) = regexprep( A_(:,2), A_(:,3), '');
    

    或者修复使用 erase (R2016b中介绍):

    for k=1:length(A_(:,2))
        A_(k,2) = erase(A_(k,2), A_(k,3)); %You need A_(k,3) here
    end
    

    但是 自从 直接适用于单元阵列,因此这里不需要循环。

    A_(:,2) = erase(A_(:,2), A_(:,3));