Index a cell array with an cell

3 ビュー (過去 30 日間)
CSCh
CSCh 2021 年 3 月 3 日
コメント済み: Jorg Woehl 2021 年 3 月 8 日
Hi all
I have a cell array
C {1x2}
C{1} 1x180 values
C{2} 1x1260 values
and B with the same size containing zeros and ones. Now I want to do something:
C{B}=[]; to delete all entries of C where B contains a one whearas if B contains a zero all values should be maintained.
How can i do this?
Thank you!

回答 (1 件)

Jorg Woehl
Jorg Woehl 2021 年 3 月 4 日
Hi Christian,
You can pick the corresponding entries for each of the cells of C as follows:
C{i}(B{i}==0)
The results are then easily combined into a new cell array, as shown in this short example:
C = {[1 2 3], [10 11 12 13 14 15 16]}
B = {[0 1 1], [ 0 1 0 0 1 1 0]}
newC = {C{1}(B{1}==0), C{2}(B{2}==0)}
The newC cell array now contains {[1], [10 12 13 16]}.
  4 件のコメント
CSCh
CSCh 2021 年 3 月 8 日
Joerg, many thanks for your effort and your help. I don't know how to create such a cell array. To don't loss so much time, I made a work around with a loop (which I actually wanted to avoid). Thank you
Jorg Woehl
Jorg Woehl 2021 年 3 月 8 日
Sounds good - cell arrays can indeed be tricky to create and work with. Thanks for the follow-up.

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

カテゴリ

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

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by