私は細胞からなる構造を持っています。各セルの最初と最後にあるすべての空白を削除したいのですが、セル内のテキスト間のすべての空白を保持したいと考えています。だから私が持っているなら
s = ' bbb b bbbb '
入手したい
s = 'bbb b bbbb'
おそらくループを使用して、このメソッドをこの構造内の不明な数のセル (たとえば 2x3) に適用したいと考えています。誰もそれを行う方法を知っていますか? で失敗しましregexp
た。
私は細胞からなる構造を持っています。各セルの最初と最後にあるすべての空白を削除したいのですが、セル内のテキスト間のすべての空白を保持したいと考えています。だから私が持っているなら
s = ' bbb b bbbb '
入手したい
s = 'bbb b bbbb'
おそらくループを使用して、このメソッドをこの構造内の不明な数のセル (たとえば 2x3) に適用したいと考えています。誰もそれを行う方法を知っていますか? で失敗しましregexp
た。
および 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);
行列が a と呼ばれる場合は、次のようにします。
newmatrix = cellfun(@strtrim, a, 'UniformOutput', false)
構造体にセルが含まれている場合A
は、次のことができます。
New_A=structfun(@strtrim,A,'UniformOutput',false)
strtrim は常に文字列の末尾を処理するとは限らないので、deblankを使用します
そのため、strtrim で必要な処理がすべて行われなかった場合は、それを deblank と組み合わせて使用することで、必要なものを取得できます。