5

私は細胞からなる構造を持っています。各セルの最初と最後にあるすべての空白を削除したいのですが、セル内のテキスト間のすべての空白を保持したいと考えています。だから私が持っているなら

s = '   bbb b bbbb   ' 

入手したい

s = 'bbb b bbbb' 

おそらくループを使用して、このメソッドをこの構造内の不明な数のセル (たとえば 2x3) に適用したいと考えています。誰もそれを行う方法を知っていますか? で失敗しましregexpた。

4

4 に答える 4

5

および cell-indexing と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 に答える