How can I construct a for loop to read a multidimensional array from a single .nc file?
Mostrar comentarios más antiguos
how can i construct a for loop for the below mentioned code? not able to attatch file since the file exceeds 5mb.
filename='MYD11A1.061_1km_aid0001.nc'
ncdisp(filename)
lon = ncread(filename,'lon');
lat = ncread(filename,'lat');
LST=ncread(filename,'LST_Day_1km');
% to read entire data from the .nc file
L1=LST(:, :, 1);
L2=LST(:, :, 2);
L3=LST(:, :, 3);
L4=LST(:, :, 4);
L5=LST(:, :, 5);
................
L365=LST(:, :, 365); % i need a for loop for this code
Respuestas (1)
Luca Ferro
el 16 de En. de 2023
Editada: Luca Ferro
el 16 de En. de 2023
i would define L* as an array and populate it one element at a time, supposing tha the dimension (365) is fixed and known:
L=zeros(1,365) %preallocate for speed
for jj=1:365
L(jj)=LST(:,:,jj);
end
you can then access each element as:
L(1)
L(2)
...
L(365)
4 comentarios
FATHIMA JAMSHEENA P
el 16 de En. de 2023
Editada: FATHIMA JAMSHEENA P
el 16 de En. de 2023
Luca Ferro
el 17 de En. de 2023
I'm very much sorry, it was an error on my side.
Basically i preallocated a vector while a 3d matrix is needed.
try to preallocate L like this:
L=zeros(size(LST));
and also fix the assignment in the loop:
L(:,:,jj)=LST(:,:,jj);
FATHIMA JAMSHEENA P
el 17 de En. de 2023
Luca Ferro
el 17 de En. de 2023
I don't think that's an error within the code. It's just a matlab limitation. Viewing an array of that dimension in the workspace makes little no sense anyways.
Just check that you have all the ';' at the end of the lines when needed and if you want further insight on the matter refer to one of these questions:
Categorías
Más información sobre Migrate GUIDE Apps en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!