# Removal of values from cell arrays

1 回表示 (過去 30 日間)
lucksBi 2018 年 3 月 15 日
コメント済み: lucksBi 2018 年 3 月 16 日
HI I have following arrays:
before={[2,3,4,5,6];[3,4,5,6,7,8];[5,6,7,8]}
after={[5,6];[4,8];5}
I got 'after' array after some calculations which removed some values from 'before' array Now I have another array X(3x7 cell array):
X= {0,1,0,0.9,0.3,[],[]; 0,0.8,0,0,-1,0.6,[]; 1,0.3,0,-0.4,[],[],[]} % [] at end of each cell were added to make it a square matrix.
In X i have got corresponding values for each value in 'before' array. Like 0 is for 2 in before{1,1}. 1 is for 3 in before{1,1}. Similarly for before{2,1} and before{3,1} I have corresponding values in X.
I want to remove those values from X whose corresponding value is removed from 'before'. Like in before{1,1} 2,3,4 are removed so 0,1,0 will be removed from X{1,1} and so on. Final resuly may look like this:
Result= {0.9,0.3; 0.8,0.6; 1,[]}
kindly help

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

### 採用された回答

Bob Thompson 2018 年 3 月 15 日
Is it possible for you to rearrange X to be 3x1 array of matrices like before and after? If so then you can use the following:
for rows = 1:size(before,1);
locations = ismember(before{rows},after{rows});
results(rows) = X{rows}(locations==1);
end
If you can't reorganize X it's going to be a bit more difficult, but let me know.
##### 8 件のコメント6 件の古いコメントを表示6 件の古いコメントを非表示
Jan 2018 年 3 月 16 日
results{rows} = X{rows}(locations)
lucksBi 2018 年 3 月 16 日
Solved.. Thanks alot @Jan Simon & @Bob Nbob

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

### その他の回答 (1 件)

KL 2018 年 3 月 16 日
If all your arrays have consistent dimension, it's a lot simpler. Not very different from the other answer though, just with cellfun,
%modified X with the same size
X= {[0,1,0,0.9,0.3]; [0,0.8,0,0,-1,0.6]; [1,0.3,0,-0.4];[]}
%now here you get what you want
idx = cellfun(@(x,y) ismember(x,y),before,after,'uni',0);
XX = cellfun(@(x,y) x(y),X,idx,'uni',0)
##### 1 件のコメント-1 件の古いコメントを表示-1 件の古いコメントを非表示
lucksBi 2018 年 3 月 16 日
yes it also resolves problem.. Thank You so much for your time.

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

### カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

### Community Treasure Hunt

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

Start Hunting!

Translated by