我有一个由细胞组成的结构。我想删除每个单元格开头和最后的所有空格,并且我想保留单元格中文本之间的所有空格。所以如果我有
s = ' bbb b bbbb '
我想获得
s = 'bbb b bbbb'
我想将此方法应用于此结构中未知数量的单元格(例如 2x3),可能使用循环。有谁知道怎么做?我失败了regexp
。
我有一个由细胞组成的结构。我想删除每个单元格开头和最后的所有空格,并且我想保留单元格中文本之间的所有空格。所以如果我有
s = ' bbb b bbbb '
我想获得
s = 'bbb b bbbb'
我想将此方法应用于此结构中未知数量的单元格(例如 2x3),可能使用循环。有谁知道怎么做?我失败了regexp
。
您可以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);
如果您的矩阵称为 a,请执行以下操作:
newmatrix = cellfun(@strtrim, a, 'UniformOutput', false)
如果A
您的结构包含单元格,那么您可以执行以下操作:
New_A=structfun(@strtrim,A,'UniformOutput',false)
strtrim 并不总是为我处理字符串的结尾,所以我使用deblank
所以如果 strtrim 没有做你想要的一切,你可以将它与 deblank 结合使用来获得你想要的。