5

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

s = '   bbb b bbbb   ' 

我想获得

s = 'bbb b bbbb' 

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

4

4 回答 4

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);
于 2012-08-22T10:39:56.300 回答
0

如果您的矩阵称为 a,请执行以下操作:

 newmatrix = cellfun(@strtrim, a, 'UniformOutput', false)
于 2012-08-22T09:53:53.487 回答
0

如果A您的结构包含单元格,那么您可以执行以下操作:

New_A=structfun(@strtrim,A,'UniformOutput',false)
于 2012-08-22T10:24:47.353 回答
0

strtrim 并不总是为我处理字符串的结尾,所以我使用deblank

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

于 2012-08-22T13:14:35.133 回答