# Reshape and Modify a cell array

10 views (last 30 days)
Marcelo Boldt on 3 Oct 2020
Commented: Marcelo Boldt on 3 Oct 2020
Dear Community,
I have a 294x1 cell array, where each variable is a number and from this cell I need to create 2 cell arrays each of 49x1, where each variable of this new cell arrays contains 3 variables of the first array. How would you do that?
This is what I got so far:
Last_vektor = num2cell(Ubertragungsmatrix(:,end));
Pu_tr = cell(49,1);
Pn_tr = cell(49,1);

madhan ravi on 3 Oct 2020
Edited: madhan ravi on 3 Oct 2020
Vielleicht?
C = num2cell(reshape(Ubertragungsmatrix(:, end), 294/2, []), 1);
C1 = num2cell(cellfun(@(x) {reshape(x, [], 3)}, C));
[Pu_tr, Pn_tr] = deal(C1{ : })
##### 2 CommentsShowHide 1 older comment
madhan ravi on 3 Oct 2020
Pu_tr{ : }

madhan ravi on 3 Oct 2020
Bessere Version:
V = reshape(Ubertragungsmatrix(:, end), [], 3, 2);
V1 = squeeze(num2cell(V, [1, 2]));
[Pu_tr, Pn_tr] = deal(V1)
Marcelo Boldt on 3 Oct 2020
yes that's right, its a 294x1 vector. that I want to convert to two 49x1 cell, each variable contianing a 3x1 vector

### Categories

Find more on Matrices and Arrays in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by