Quindi, ho una matrice cellulare di vettori 1xN di diverse lunghezze. Voglio aggiungerli in una matrice in modo da poterli visualizzare con imagesc
. Ovviamente la matrice deve essere la larghezza del vettore più grande. Il codice corrente per questo è il seguente:Come posso accumulare celle di diverse lunghezze in una matrice in 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
Qualcuno conosce una soluzione vettoriale per questo tipo di problema? Non sono molto preoccupato della velocità di questo ciclo a causa del JIT di MATLAB. Sto solo cercando di ampliare le mie conoscenze e questo è un caso che mi capita spesso nella mia programmazione.