2011-03-09 14 views
9

Tengo una matriz de celdas 2D. Quiero hacer lo siguiente:matriz de celdas 2D simple anexa

y = some_number; 
row(x) = [row(x) another_row(y)]; 

Sin embargo, fila (x) no está definida hasta que esto suceda por lo que no funciona! ¿Cómo añado simplemente another_row (y) en la fila (x) cuando la fila (x) no se puede definir?

Lo siento, esto es fácil de hacer en otros idiomas, pero no estoy seguro de cómo en MATLAB!

Gracias.

+0

No está perfectamente claro lo que estás tratando de hacer. ¿Podrías dar un ejemplo concreto de lo que podría estar en tu matriz de antemano y en qué te gustaría estar después? ¿O algún código en otro idioma en el que es fácil? –

Respuesta

15

primer lugar, puede inicializar row ser una matriz vacía (o conjunto de celdas) de la siguiente manera:

row = []; %# Empty array 
row = {}; %# Empty cell array 

A continuación, puede añadir una nueva fila a la matriz (o una nueva célula a la matriz celular) como entonces:

row = [row; another_row(y)]; %# Append a row to the array 
row = [row; {another_row(y)}]; %# Append a cell to the cell array 

Consulte la documentación para más información sobre creating and concatenating matrices.

También se debe tener en cuenta que el crecimiento de matrices como este no es muy eficiente. Preallocating an array, suponiendo que conozcas el tamaño final, será una idea mucho mejor. Si no conoce el tamaño final, es probable que allocating array elements in chunks sea más eficiente que asignarlas una fila a la vez.

Cuestiones relacionadas