Sizing array to add to a 3D array
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
chann lagadec
el 6 de Ag. de 2020
Comentada: chann lagadec
el 7 de Ag. de 2020
Aloha!
I have a relatively big array (sorted_celldata) with all my data (12 columns, 248976 rows), its contains data from the follow up of 23819 cells through the time.
I would like to simplify the access to the data by generating an array for each single cell (the id of each cell in in column 12 of sorted_celldata), and then store them in a 3 dimension array.
Here my code:
for p=1:max(sorted_celldata(:,12))
cell_idxlist = find (sorted_celldata(:,12) == p); % to look in which line I have data from cell p
celldata = sorted_celldata (cell_idxlist,:); % to generate a array with all data from cell p
nb_of_rows = size (celldata,1); % I put this line because of the error message below, trying to adjust the since of the arrays
nb_of_columns = size (celldata,2); % I put this line because of the error message below, trying to adjust the since of the arrays
celldata_arrays (nb_of_rows,nb_of_columns,p) = [celldata]; % here I generate my 3 dimension arrays, where each 3rd dimension is an array containing the data of a specific cell
end
Unfortunately, here the error message that I get:
Unable to perform assignment because the indices on the left side are not
compatible with the size of the right side.
Error in untitled9 (line 6)
celldata_arrays (nb_of_rows,nb_of_columns,p) = [celldata]
0 comentarios
Respuesta aceptada
Sudheer Bhimireddy
el 6 de Ag. de 2020
Editada: Sudheer Bhimireddy
el 6 de Ag. de 2020
You are changing the array size which is not how you do to store something. You are trying to store multi-dimensional array in a single field, that's why you are getting that error.
Choice 1:
% Change this line
celldata_arrays (nb_of_rows,nb_of_columns,p) = [celldata];
% to
celldata_arrays (nb_of_rows,nb_of_columns,p) = 0;
celldata_arrays (:,:,p) = celldata;
This way you will have empty fields whenever nb_rows and nb_columns is greater than previous values.
Choice 2:
celldata_arrays {p,1} = celldata;
Hope this helps.
4 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Structures en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!