Effacer les filtres
Effacer les filtres

Extract only some specific elements of the arrays of a cell

9 vues (au cours des 30 derniers jours)
Hamed Jalali
Hamed Jalali le 5 Avr 2022
Commenté : Hamed Jalali le 5 Avr 2022
I have a cell, say C, where each array is also a cell. I have an index set and I want to extract cells 2, 5,1. It can be done by using . But it returns a cell where each cell is still a cell. What I want to know is how I can extract a new cell that contains cells 2,5, and 1 of the original cell, and also for each individual cell, it only contains cells 2,5, and 1. Therefore, the final cell is a cell and all individual cells are also a cell.

Réponse acceptée

Stephen23
Stephen23 le 5 Avr 2022
C = arrayfun(@(n)num2cell(rand(1,5)),1:5,'uni',0)
C = 1×5 cell array
{1×5 cell} {1×5 cell} {1×5 cell} {1×5 cell} {1×5 cell}
C{:}
ans = 1×5 cell array
{[0.0326]} {[0.4440]} {[0.0083]} {[0.6590]} {[0.0110]}
ans = 1×5 cell array
{[0.2557]} {[0.8965]} {[0.0137]} {[0.0078]} {[0.5929]}
ans = 1×5 cell array
{[0.4589]} {[0.6418]} {[0.2742]} {[0.3274]} {[0.1927]}
ans = 1×5 cell array
{[0.9374]} {[0.0589]} {[0.0613]} {[0.5019]} {[0.8903]}
ans = 1×5 cell array
{[0.6602]} {[0.0461]} {[0.6398]} {[0.9363]} {[0.9559]}
X = [2,5,1];
D = cellfun(@(d)d(X),C(X),'uni',0)
D = 1×3 cell array
{1×3 cell} {1×3 cell} {1×3 cell}
D{:}
ans = 1×3 cell array
{[0.8965]} {[0.5929]} {[0.2557]}
ans = 1×3 cell array
{[0.0461]} {[0.9559]} {[0.6602]}
ans = 1×3 cell array
{[0.4440]} {[0.0110]} {[0.0326]}

Plus de réponses (1)

KSSV
KSSV le 5 Avr 2022
C = cell(5,1) ;
for i = 1:5
C{i} = rand(1,3) ;
end
idx = [2 5 1] ;
iwant = C(idx)
iwant = 3×1 cell array
{[0.2284 0.3773 0.9742]} {[0.5814 0.1525 0.4597]} {[0.9464 0.0561 0.6506]}
  1 commentaire
Hamed Jalali
Hamed Jalali le 5 Avr 2022
Each element of C is also a cell. If you cahnge C{i} = rand(1,3) ; to C{i} = rand(1,5) ; your final cell, iwant is a cell which each element is still double. I need all elements of the final cell be a cell/double.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by