How to add zeros to the end of cells

2 次查看(过去 30 天)
I am looping through data, which are of various lengths. I want to create a cell that will attach zeros to the end of the cells so there is not a dimension mismatch. How do I go about doing this? How do I do this if the first set of data to loop through is not the largest length?
  7 个评论
Geoff Hayes
Geoff Hayes 2018-3-5
@Jan - I didn't realize you could do that!
Lexington Stoyell
How do you then add the zeros on the end?

请先登录,再进行评论。

回答(1 个)

Walter Roberson
Walter Roberson 2018-3-5
FirstNCols = @(M,n) M(:,1:n);
PadToN = @(M,n) FirstNCols([M, zeros(size(M,1),n)]);
width_needed = max( cellfun(@(M) size(M,2), YourArray) );
PaddedArray = cellfun(@(M) PadToN(M, width_needed), YourArray, 'uniform', 0);
  4 个评论
Lexington Stoyell
When implementing this I get the error as follows:
Error using @(M,n)M(:,1:n)
Not enough input arguments.
Error in @(M,n)FirstNCols([M,zeros(size(M,1),n)])
Error in @(M)PadToN(M,width_needed)
Error in limits (line 34)
PaddedArray = cellfun(@(M) PadToN(M, width_needed), YourArray, 'uniform', 0);
Walter Roberson
Walter Roberson 2018-3-6
FirstNCols = @(M,n) M(:,1:n);
PadToN = @(M,n) FirstNCols([M, zeros(size(M,1),n)], n);
width_needed = max( cellfun(@(M) size(M,2), YourArray) );
PaddedArray = cellfun(@(M) PadToN(M, width_needed), YourArray, 'uniform', 0);

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by