Filter löschen
Filter löschen

Filling up a matrix

2 Ansichten (letzte 30 Tage)
Royvg94
Royvg94 am 28 Sep. 2015
Kommentiert: Walter Roberson am 29 Sep. 2015
I have an array of 69 x 1 cells. Every cell contains a matrix of either 12 x 1 or 13 x 1. I want Matlab to make a matrix of 13 x 69 and filling up the empty spaces of the 12 x 1 matrices by adding zero's.
Is this possible?
Thanks for the help!

Antworten (2)

James Tursa
James Tursa am 28 Sep. 2015
How about a simple loop:
result = zeros(13,69);
for k=1:69
n = numel(mycellarray{k});
result(1:n,k) = mycellarray{k};
end
  1 Kommentar
Royvg94
Royvg94 am 29 Sep. 2015
The output of this is a matrix with only zero's. I need the results from all matrices in the array, and the matrices with only 12 rows, need to be filled to 13 by adding a zero.

Melden Sie sich an, um zu kommentieren.


Walter Roberson
Walter Roberson am 29 Sep. 2015
first13 = @(V) V(1:13);
result = cell2mat( cellfun(@(V) first13([V;0]), YourCellArray, 'Uniform', 0) );
If the cells can be variable size all the way from empty to 13, then use
first13([V;zeros(13,1)])
  2 Kommentare
Royvg94
Royvg94 am 29 Sep. 2015
I think this is what i need, the only problem is that the output is in 1 column, and i need it to be 13 x 69...
Walter Roberson
Walter Roberson am 29 Sep. 2015
result = cell2mat( cellfun(@(V) first13([V;0]), YourCellArray, 'Uniform', 0).' );

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by