Loop for do figures with data into the structure

4 Ansichten (letzte 30 Tage)
Hernaldo Leyton
Hernaldo Leyton am 2 Jul. 2017
Kommentiert: Walter Roberson am 3 Jul. 2017
Hello
I need to please if you can help me in looping to generate several maps of several days of pressure and geopotential, whose data are inside a structure. I try to generate the code but I get the following error "Reference to non-existent field 'DIA'.
The code I have is the following:
ob=[17:27]; Corresponds to specific dates of the days
for i=1:size(ob,2);
figure(i);
pcolor(Y,X,REANALYSIS.DIA(num2str(ob(i))).PRSML); %%for example REANALYSYS.DIA17.PRSML, after REANALYSYS.DIA18.PRSML.....etc
caxis([960 1020]);
shading interp;
hold on;
[c,h]=contour(Y,X,REANALYSIS.DIA(num2str(ob(i))).ALTURA_GEOPOTENCIAL,'k'); %%for example REANALYSYS.DIA17.ALTURA_GEOPOTENCIAL, after REANALYSYS.DIA18.ALTURA_GEOPOTENCIAL........etc
hcl=clabel(c,h,'FontSize',18,'Color','k','labelspacing',2000,'Rotation',0);
for l = 1:size(hcl); textstr=get(hcl(l),'String');
textnum=str2double(textstr);
textstrnew=sprintf('%0.0f', textnum) ;
set(hcl(l),'String',textstrnew);
end
% clabel(c,h,'manual');
% clabel(c,'FontSize',20,'Color','k','Rotation',0)
% t=colorbar;
colorbar('FontSize',20);
xlabel ('Longitud','FontSize',20);
ylabel ('Latitud','FontSize',20);
axis equal;
axis tight;
hold on;
plot(A.long,A.lat);
xlim([-102.5 -42.5]);
ylim([-57.5 -7.5]);
set(gca,'FontSize',17);
end
thanks for your help
best regards

Antworten (1)

KSSV
KSSV am 3 Jul. 2017
You should read about how to deal a structure. Check the following example.
% Make some structure for demo
REANALYSIS.DIA1.PRSML = 1 ;
REANALYSIS.DIA2.PRSML = 2 ;
REANALYSIS.DIA3.PRSML = 3 ;
REANALYSIS.DIA4.PRSML = 4 ;
REANALYSIS.DIA5.PRSML = 5 ;
%%This is not the way to use, it throws error
% for i = 1:5
% REANALYSIS.DIA(num2str(i)).PRSML
% end
%%use likle this
% Get the filed names and then run a loop
DIA = fieldnames(REANALYSIS) ;
for i = 1:length(DIA)
getfield(REANALYSIS,DIA{i})
end
%OR, convert structure to cell and then use
A = struct2cell(REANALYSIS) ;
for i = 1:length(A)
A{i}
end

Kategorien

Mehr zu MATLAB Coder finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by