如何在matlab中删除开头和结尾的空格?

时间:2012-08-22 09:50:07

标签: matlab cell removing-whitespace

我有一个由细胞组成的结构。我想删除每个单元格的开头和最后的所有空格,我想保留单元格中文本之间的所有空格。所以,如果我有

s = '   bbb b bbbb   ' 

我想获得

s = 'bbb b bbbb' 

我想将此方法应用于此结构中的未知数量的单元格(例如2x3),可能使用循环。有谁知道怎么做?我失败了regexp

4 个答案:

答案 0 :(得分:5)

您可以将strtrim()structfun()和单元格索引结合使用:

your_struct = structfun(@(x) strtrim(x{1}), your_struct);

这仅适用于您的结构具有类似

的布局
your_struct.a = {' some string  '};
your_struct.b = {' some other string  '};
...

如果它有不同的结构,比如说,

your_struct.a = { {' some string  '}
                  {'   some other string '}};

your_struct.b = { {' again, some string  '}
                  {'   again, some other string '}};

...

你可以尝试

your_struct = structfun(@(x) ...
    cellfun(@strtrim, x, 'uni', false), ...
    your_struct, 'uni', false);

答案 1 :(得分:0)

如果您的矩阵名为a,请执行:

 newmatrix = cellfun(@strtrim, a, 'UniformOutput', false)

答案 2 :(得分:0)

如果A是包含单元格的结构,那么您可以这样做:

New_A=structfun(@strtrim,A,'UniformOutput',false)

答案 3 :(得分:0)

strtrim并不总是照顾我的字符串结尾,所以我使用deblank

所以如果strtrim没有做你想做的一切,你可以将它与deblank一起使用来获得你想要的东西。