Por lo tanto, tengo una matriz de celdas de vectores 1xN de diferentes longitudes. Quiero agregarlos a una matriz para que pueda mostrarlos con imagesc
. Obviamente, la matriz debe ser del ancho del vector más grande. Mi código actual para esto está debajo:¿Cómo puedo acumular células de diferentes longitudes en una matriz en 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
¿Alguien sabe una solución vectorizada para este tipo de problema? No estoy realmente preocupado por la velocidad de este ciclo debido al JIT de MATLAB. Solo intento expandir mi conocimiento y este es un caso que encuentro con bastante frecuencia en mi programación.