Removing elements from a cell array

17 ビュー (過去 30 日間)
ozgur
ozgur 2015 年 2 月 25 日
コメント済み: ozgur 2015 年 2 月 25 日
this is the cell array i am working on it.
intpop =
{3x10 cell} {3x10 cell} {3x10 cell} {3x10 cell} {3x10 cell}
{3x10 cell} {3x10 cell} {3x10 cell} {3x10 cell} {3x10 cell}
{3x10 cell} {3x10 cell} {3x10 cell} {3x10 cell} {3x10 cell}
{3x10 cell} {3x9 cell} {3x9 cell} {3x10 cell} {3x10 cell}
{3x10 cell} {3x10 cell} {3x9 cell} {3x10 cell} {3x10 cell}
this is one of its elements.
intpop{4,1}=
[1] [5] [7] [4] [2] [1] [] [] [] []
[1] [5] [6] [2] [4] [7] [3] [5] [1] [1]
[3] [7] [2] [5] [4] [6] [1] [2] [4] [3]
What i want is: Remove the one element and other elements move left so empty element will appear at the end. For example:
I want to remove second row third column element=[6]. All other elements move left one cell so empty cell will be at the end.
This is the resulting array
intpop{4,1}=
[1] [5] [7] [4] [2] [1] [] [] [] []
[1] [5] [2] [4] [7] [3] [5] [1] [1] []
[3] [7] [2] [5] [4] [6] [1] [2] [4] [3]
  1 件のコメント
Jos (10584)
Jos (10584) 2015 年 2 月 25 日
編集済み: Jos (10584) 2015 年 2 月 25 日
I do not get this: "Remove the one element". Can you clarify?
My suggestion: write a function that takes a single cell (like intpop{4,1}) that does what you're after
function OUT = my function(IN)
OUT = IN ;
OUT{4,1} = 'test' ;
and then call this function for every cell of intpop using CELLFUN
Y = cellfun(@myfunction, intpop)

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

採用された回答

Titus Edelhofer
Titus Edelhofer 2015 年 2 月 25 日
Hi,
something like this?
intpop{4,1}(2,:) = [intpop{4,1}(2, setdiff(1:size(intpop{4,1},2), 3)) {[]}]
Titus
  1 件のコメント
ozgur
ozgur 2015 年 2 月 25 日
Thanks a lot

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCell Arrays についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by