cell配列内の特定の行を取り出し,それらの行を一つのcell配列にまとめることはできますか?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Gamma1990
el 16 de Jul. de 2021
Comentada: Gamma1990
el 17 de Jul. de 2021
一枚目の画像の3列目の値が4のとき,その行をすべて取り出して二枚目の画像のようにまとめたいのですが,可能でしょうか?
よろしくお願いします.
0 comentarios
Respuesta aceptada
Akira Agata
el 16 de Jul. de 2021
対象の cell 配列を C1 とすると、以下のようにして抽出可能です。
idx = cellfun(@(x) x == 4, C1(:,3));
C2 = C1(idx,:);
3 comentarios
Atsushi Ueno
el 16 de Jul. de 2021
⇒横槍⇒失礼致します
>配列要素にアクセスする方法は主に 3 つあり、位置によるインデックス付け、線形インデックス付け、論理インデックス付けです。上記回答や下記説明ではこの内3番目の論理インデックス付けを使っています。
「配列C1の任意の行と3列目に対して,引数が4の無名関数を適用したもの」の出力は下記のような論理インデックスです。
>> C1
C1 = 4×4 の cell 配列
[1] [4×4 double] [1] [2]
[1] [4×4 double] [4] [2]
[1] [4×4 double] [3] [2]
[1] [4×4 double] [1] [2]
>> idx = cellfun(@(x) x == 4, C1(:,3))
idx = 4×1 の logical 配列
0
1
0
0
この論理インデックスを用いて元のC1にアクセスすると、条件C1(:,3)==4を満足するCell配列の行(の全列)だけが出力されます。
C2 = C1(idx,:);
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!