Azzera filtri
Azzera filtri

How to add zeros to the end of cells

2 visualizzazioni (ultimi 30 giorni)
Lexington Stoyell
Lexington Stoyell il 5 Mar 2018
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 Commenti
Geoff Hayes
Geoff Hayes il 5 Mar 2018
@Jan - I didn't realize you could do that!
Lexington Stoyell
Lexington Stoyell il 5 Mar 2018
How do you then add the zeros on the end?

Accedi per commentare.

Risposte (1)

Walter Roberson
Walter Roberson il 5 Mar 2018
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 Commenti
Lexington Stoyell
Lexington Stoyell il 6 Mar 2018
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 il 6 Mar 2018
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);

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by