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

 采纳的回答

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

更多回答(2 个)

Jan
Jan 2011-10-13
for k=1:length(a)
L = length(a{k});
a{k}(L+1:50) = {0};
end

1 个评论

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}

请先登录,再进行评论。

Rusmaya Luthfina
Rusmaya Luthfina 2011-10-14

0 个投票

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 个评论

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 [].
Thank you :D
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..
i've already figure this out,, :D thx
What is the solution to your problem? I can't figure it out

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by