Equalizing the size of arrays in a cell

4 ビュー (過去 30 日間)
Lui
Lui 2020 年 7 月 18 日
コメント済み: madhan ravi 2020 年 7 月 18 日
Hi everyone,
I have 300 sets of data held in a 1 by 300 cell. The data is of unequal length and as such, it is difficult to change the cell to an array as I would love to. Instead, I would like to make the size of the arrays to be uniform for that to work. The array dimensions should be (1000 by 1) but some of the arrays have 400, 230 etc. I would therefore like to fill the arrays with zeros for the parts that there is no entry to make them have a length of 1000. Is there anyone with an idea?
I have looked at this solution but it does not seem to work for my case. How can I adapt the same?

採用された回答

Sugar Daddy
Sugar Daddy 2020 年 7 月 18 日
編集済み: Sugar Daddy 2020 年 7 月 18 日
Suppose my variable name is y
if data is row vector
z = cellfun(@(x) [x zeros(1,100-length(x))],y,'uni',0);
if data is column vector
z = cellfun(@(x) [x;zeros(100-length(x),1)],x,'uni',0);
  2 件のコメント
Lui
Lui 2020 年 7 月 18 日
Thank you so much.
Lui
Lui 2020 年 7 月 18 日
Worked !!

サインインしてコメントする。

その他の回答 (1 件)

Lui
Lui 2020 年 7 月 18 日
I worked out a different solution though.
for N=300 % entries in the cell
Y{1,N}(numel(Y{1,1}))=0 % where Y{1,1} has the desired length.
end
I appreciate the contribution.
  1 件のコメント
madhan ravi
madhan ravi 2020 年 7 月 18 日
XD

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by