Delete/Extract values from nested cell arrays

1 Ansicht (letzte 30 Tage)
ErikaZ
ErikaZ am 11 Jul. 2019
Bearbeitet: ErikaZ am 13 Jul. 2019
I have cell array X (see attachment) which is a {1x3}->{1x2}->{2x2}->{1x10}-> (sizes ranging from 5 to 27)
From the inner array, I need to extract/keep the first, middle and last value.
For example, for the attached X:
CPClear_angle{1, 1}{1, 1}{1, 1}{1, 1}
-10.4805997230720 -8.45914496472814 -6.90173932281437 -6.67445150097098 -5.60467260957554 -1.40582560357418
Keep the values: -10.4805997230720 -6.90173932281437 -1.40582560357418 and transpose them so it results in a inner array of 3x10 for all.
I do want to keep the {1x3}->{1x2}->{2x2} arragement because each cell is a different group type.
For a single array, the code below extracts the values I need
x=x(:,[1,ceil(end/2),end])
but I dont know how to apply it to the nested cells.
Thanks.

Akzeptierte Antwort

ErikaZ
ErikaZ am 13 Jul. 2019
Bearbeitet: ErikaZ am 13 Jul. 2019
Using ncellfun from File Exchange
CPClear=ncellfun(@transpose,CPClear_angle);
CPClear=ncellfun(@cell2mat, CPClear,3);
CPClear=ncellfun(@keepCP, CPClear,3);
and function
function [ m ] = keepCP( x )
m=x([1,ceil(end/2),end],:);
end

Weitere Antworten (0)

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by