hi all y teachers,
i have a cell :
a = {{8x1cell} {14x1cell} {11x1cell} {23x1cell} {17x1cell} {8x1cell} {18x1cell} {14x1cell} {20x1cell} {28x1cell}}
i need to change the dimension of each cell to a fix number, say 50x1 cell. So each cell will have dimension 50x1, and i want the rest rows of the cell to be 0 or []
ex: take the 1st col of the cell, it's 8x1cell and i need it to be 50x1 with 42rows left to be zero or []
old 8x1cell = {'i'; 'need'; 'a'; 'glass'; 'of'; 'water'; 'right'; 'now'}
new 8x1cell = {{'i'; 'need'; 'a'; 'glass'; 'of'; 'water'; 'right'; 'now'; 0; 0; ... till row 50}
is there any possible way i can perform that? really need your helps, plzz! :(
thx,
Maya

 Respuesta aceptada

Fangjun Jiang
Fangjun Jiang el 13 de Oct. de 2011

2 votos

for k=1:length(a)
a{k}(end+1:50={[]}; %pad with []
%a{k}(end+1:50={0}; %pad with []
end

Más respuestas (2)

Jan
Jan el 13 de Oct. de 2011

1 voto

for k=1:length(a)
L = length(a{k});
a{k}(L+1:50) = {0};
end

1 comentario

Javier
Javier el 17 de Nov. de 2020
Hello there, lets say I have the cell array
1×6 cell array
{8791×1 double} {8782×1 double} {8802×1 double} {8795×1 double} {8806×1 double} {8791×1 double}
I need to change all of them to be
{8782×1 double}
So that I would have a 1×6 cell array where there is repeated {8782×1 double}

Iniciar sesión para comentar.

Rusmaya Luthfina
Rusmaya Luthfina el 14 de Oct. de 2011

0 votos

Wuaaaaa,, its work! the answers you both give me are working exactly what i need,, i've just checked and it's so simple,, stupid me. sorry for bothering you with this low-level question.. :D
So many thanks for you Mr Simon and Mr Jiang.
Ouw,, may i asked 1 more low-level question?
Is it possible to make that cell array (a) as output in a function?? 'coz i need to call a function containing that cell as an output..
---Maya----

5 comentarios

Fangjun Jiang
Fangjun Jiang el 14 de Oct. de 2011
The answer is yes. Treat it no differently than any other variable. Put it in the output argument.
Also, see update in my answer. It provided both ways to pad with zero or with [].
Rusmaya Luthfina
Rusmaya Luthfina el 17 de Oct. de 2011
Thank you :D
Rusmaya Luthfina
Rusmaya Luthfina el 17 de Oct. de 2011
excuse me, is ur code only works for cell of cell array? what about if i have cell of double array?
ex:
b = {[8x1double] [14x1double] ... soon}
i've implemented ur code and it's said error
for k=1:length(a)
a{k}(end+1:50={[]}; %pad with []
%a{k}(end+1:50={0}; %pad with []
end
error :Conversion to double from cell is not possible.
and for your 1st code
a{k}{N} = [];
error Cell contents assignment to a non-cell array object.
sorry for bothering u again..
Rusmaya Luthfina
Rusmaya Luthfina el 17 de Oct. de 2011
i've already figure this out,, :D thx
Alexander Sidelev
Alexander Sidelev el 3 de Abr. de 2018
What is the solution to your problem? I can't figure it out

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 13 de Oct. de 2011

Comentada:

el 17 de Nov. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by