MATLAB: как изменить размер матриц ячеек

У меня есть ячейка матриц с одинаковым количеством столбцов и разным количеством строк

x = 

[210x15 double]  [220x15 double]   [236x15 double]

Как я могу уменьшить все матрицы до одинакового минимального количества строк, отбрасывая их? В этом случае это будет 210:

x = 

[210x15 double]  [210x15 double]   [210x15 double]

person Mixo    schedule 30.05.2014    source источник
comment
Что вы подразумеваете под сокращением? Просто отбросить конечные строки?   -  person timgeb    schedule 30.05.2014
comment
Да, я бы отбросил конечные строки   -  person Mixo    schedule 30.05.2014


Ответы (2)


Попробуй это -

cellfun(@(c) c(1:min(cellfun(@(c) size(c,1),x)),:),x,'uni',0)
person Divakar    schedule 30.05.2014

Примитивный ответ будет

rowcount = zeros(length(x),1);
for i = 1:length(x)
    rowcount(i) = size(x{i},1);
end
for i = 1:length(x)
    x{i}(min(rowcount)+1:end,:) = [];
end 
person ssulun    schedule 30.05.2014