Donc, j'ai une matrice de vecteurs 1xN de différentes longueurs. Je veux les ajouter dans une matrice afin que je puisse les afficher avec imagesc
. Évidemment, la matrice doit être la largeur du plus grand vecteur. Mon code actuel pour cela est ci-dessous:Comment puis-je accumuler des cellules de différentes longueurs dans une matrice dans MATLAB?
tcell = {[1,2,3], [1,2,3,4,5], [1,2,3,4,5,6], [1], []};
lens = cellfun('length', tcell);
rmat = NaN(length(tcell), max(lens));
for i = 1:length(tcell)
rmat(i, 1:lens(i)) = tcell{i};
end
Est-ce que quelqu'un connaît une solution vectorisée pour ce type de problème? Je ne suis pas vraiment inquiet de la vitesse de cette boucle à cause du JIT de MATLAB. J'essaie simplement d'élargir mes connaissances et c'est un cas que je rencontre souvent dans ma programmation.