# equalizing few matrices size in a cell

2 vues (au cours des 30 derniers jours)
khaled alsaih le 4 Mai 2021
Commenté : KSSV le 4 Mai 2021
Hello everyone, and thanks in advance
let's say I have a cell of 10 arrays. but the arrays are not having the same dimensions.
example: 60000x1 , 65478x1, 74578x1 and so on. how can i make all the arrays the same size, knowing that i want the dimensions to have the least size so no zeros padding.
thanks a lot
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Réponse acceptée

Walter Roberson le 4 Mai 2021
minlen = min(cellfun(@length, YourCell));
truncCell = cellfun(@(C) C(1:minlen), YourCell, 'uniform', 0)
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Plus de réponses (1)

KSSV le 4 Mai 2021
% demo data
C{1} = rand(60000,1) ;
C{2} = rand(65478,1) ;
C{3} = rand(74578,1) ;
% lengths of each cell array
L = cellfun(@length,C) ;
% do interpolation to get the cell array to same size
for i = 1:length(C)
C{i} = interp1((1:L(i))',C{i},linspace(1,L(i),min(L))) ;
end
##### 2 commentairesAfficher AucuneMasquer Aucune
khaled alsaih le 4 Mai 2021
i have 10 cells and sometimes more, is there any dynamic way to accept any number of arrays and reduce them to the smallest matrix size?
KSSV le 4 Mai 2021
The above code works for any given cell array C of any size .

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by