extract cell depend on vector?

1 回表示 (過去 30 日間)
skysky2000
skysky2000 2017 年 2 月 7 日
コメント済み: skysky2000 2017 年 2 月 7 日
Dear all, I have vector a (1x7) and cell b (1x7), how can I extract each cell depend on elements equal in a?
a= [ 1 2 3 3 4 5 6 6];
b= { [1 2 3] [ 3 6] [ 5 6 7] [ 5 60] [ 5 6 5] [ 6 7 1 0] [ 88 99] [ 7 8 99] }
result should be:
res= {[ 5 6 7] [ 5 60] [ 6 7 1 0] [ 88 99]}
Thanks...
  1 件のコメント
Stephen23
Stephen23 2017 年 2 月 7 日
Why is [ 7 8 99] not in the output ?

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

採用された回答

Guillaume
Guillaume 2017 年 2 月 7 日
The latest explanation is much clearer:
a = [ 3 2 1 3 6 5 4 6];
b = { [1 2 3] [ 3 6] [ 5 6 7] [ 5 60] [ 5 6 5] [ 6 7 1 0] [ 88 99] [ 7 8 99] };
result = b(arrayfun(@(v) sum(a == v)>1, a))
  1 件のコメント
skysky2000
skysky2000 2017 年 2 月 7 日
That amazing Guillaume ... thanks alot

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

その他の回答 (1 件)

Stephen23
Stephen23 2017 年 2 月 7 日
編集済み: Stephen23 2017 年 2 月 7 日
>> a = [1,2,3,3,4,5,6,6];
>> b = {[1,2,3],[3,6],[5,6,7],[5,60],[5,6,5],[6,7,1,0],[88,99],[7,8,99]};
>> c = b(cellfun(@(v)~all(ismember(v,a)),b))
>> c{:}
ans =
5 6 7
ans =
5 60
ans =
6 7 1 0
ans =
88 99
ans =
7 8 99
  4 件のコメント
Guillaume
Guillaume 2017 年 2 月 7 日
Kudos to Stephen for figuring out what you want (maybe!) but really, you need to express yourself a lot clearer.
"There are only 4 elements equal in vector a"
4 elements equal to what?
skysky2000
skysky2000 2017 年 2 月 7 日
編集済み: skysky2000 2017 年 2 月 7 日
Thanks Guillaume. I meant when I applied Stephen soluation, didnt give me the right result. vector a has 4 element same (3,3,6,6), and what I want 4 cells relate it to these elements.
a= [ 3 2 1 3 6 5 4 6];
b= { [1 2 3] [ 3 6] [ 5 6 7] [ 5 60] [ 5 6 5] [ 6 7 1 0] [ 88 99] [ 7 8 99] }
result={[1 2 3] [ 5 60] [ 5 6 5] [ 7 8 99]}
Thanks...

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

カテゴリ

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