Filling Cell Array with Empty value

3 次查看(过去 30 天)
Hi Everyone
I have cell arracy call Reults look like given below 4x1 cell
3x1 cell
4x1 cell
3x1 cell
4x1 cell
4x1 cell
4x1 cell
4x1 cell
4x1 cell
4x1 cell
5x1 cell
4x1 cell
4x1 cell
5x1 cell
I want to do the dimension equal of each cell by filling with empty value so that it becomes like 5x1 cell
5x1 cell
5x1 cell
5x1 cell ... and so on.
Can any one help ? It would be great to check if dimension of any cell in a cell called 'Result' is less than 5 say 4x1 make it 5x1 by inseting the empty value at last.
If the check is not possible it is fine to make every cell with in cell call 'Result' 5x1
Thanks in advance.

采纳的回答

Thorsten
Thorsten 2015-11-25
编辑:Thorsten 2015-11-25
for i = 1:numel(Result)
[r, c]= size(Result{i});
assert(c == 1, 'Number of columns must be 1.')
if r < 5, Result{i}{5,1} = []; end
end
  2 个评论
Abi Waqas
Abi Waqas 2015-11-26
Dear
thanks for response, i found another solution. The solution you gave is right but was not suiting my problem.
Thanks alot :)
Avinash Dass
Avinash Dass 2019-2-26
Dear Abi,
Can you provide me your solution ?
Thanks in advance.

请先登录,再进行评论。

更多回答(1 个)

Stephen23
Stephen23 2015-11-25
编辑:Stephen23 2015-11-25
As an alternative you can easily remove one level of the cell nesting:
V = {{0;1;2};{3;4;5;6};{7;8;9}};
for k = numel(V):-1:1
Z(1:numel(V{k}),k) = V{k};
end
This produces a cell array without other cells nested inside it, each column is one of the cells of the original array (swap the Z-indices to make this the rows):
>> Z
Z =
[0] [3] [7]
[1] [4] [8]
[2] [5] [9]
[] [6] []
It may be easier to access the contents:
>> Z(:,2)
ans =
[3]
[4]
[5]
[6]
  1 个评论
Abi Waqas
Abi Waqas 2015-11-26
thank you for the reponse :)
I have found someother solution for that

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Operators and Elementary Operations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by