Removing elements from a cell array
17 ビュー (過去 30 日間)
古いコメントを表示
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)
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
2015 年 2 月 25 日
Hi,
something like this?
intpop{4,1}(2,:) = [intpop{4,1}(2, setdiff(1:size(intpop{4,1},2), 3)) {[]}]
Titus
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Cell Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!