フィルターのクリア

strtrim not working for cell array

18 ビュー (過去 30 日間)
Praveen Choudhury
Praveen Choudhury 2016 年 2 月 15 日
回答済み: Walter Roberson 2016 年 2 月 15 日
I have a cell of 472*12 size. I am trying to use strtrim on this cell but I am getting an error which says "Input should be a string or a cell array of strings." Can anyone help me with this?
  4 件のコメント
Praveen Choudhury
Praveen Choudhury 2016 年 2 月 15 日
All my elements are of type char. Please see the attached.
Geoff Hayes
Geoff Hayes 2016 年 2 月 15 日
They appear to be either character strings or are empty [] elements. See Sean's answer below for how to deal with this situation (his code replaces the empty elements with '' strings).

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2016 年 2 月 15 日
[] is not of type char so you are current attempting to use strtrim on non-strings.
Here is a workaround:
new_tableData = cellfun(@(S) strtrim([S '']), tableData, 'Uniform', 0);
The [] of '' has no effect on strings, but has the subtle side effect of converting [] into '' which can be trimmed.

その他の回答 (1 件)

Sean de Wolski
Sean de Wolski 2016 年 2 月 15 日
iscellstr(your_cell)
will definitively tell you if your cell contains only strings. It's also possible that it contains numeric empties [] but otherwise strings. If this is the case the following will fix it.
empties = cellfun(@isempty,your_cell)
your_cell(empties) = {''};
Note you could also create the cell this way to begin with rather than using cell()
your_cell = repmat({''},rows,cols);

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by