How to plot elements of a structure?

6 visualizzazioni (ultimi 30 giorni)
Alex
Alex il 13 Set 2018
Modificato: Alex il 14 Set 2018
I have an array of structures that is 91x10 called B. Within each element of the array is a structure Bx, By, Bz. I want to create three pcolor plots of Bx, By and Bz. I'm not sure how to do this.
latitudes =1:1:10;
alt=1:1:91;
for j=1:length(latitudes)
for i=1:length(alt)
B_igrf(:,1) = rand(3,1)
B(i,j)=struct('Bx',B_igrf(1,1),'By',B_igrf(2,1),'Bz',B_igrf(3,1))
end
end
%map Bx
figure(2),pcolor(latitudes, alt, B.Bx)
xlabel('Time(time past.......','fontsize',24, 'fontweight','bold')
ylabel('Altitude (km)','fontsize',24, 'fontweight','bold');
xlabel(colorbar,'n_e(m^{-3})','fontsize',24, 'fontweight','bold')
set(gca,'FontSize',24)
Your help would be greatly appreciated!
  2 Commenti
Bob Thompson
Bob Thompson il 13 Set 2018
As I understand it, when you want to work with all the elements of a field in a structure you need to concatenate them. Try:
pcolor(latitudes, alt, [B.Bx]);
No guarentees, just the first thing that came to mind.
If that doesn't work, are you getting any errors? If so, what are they?
Alex
Alex il 14 Set 2018
Modificato: Alex il 14 Set 2018
The command you suggested gives the error "Color data input must be a matrix."
I solved the issue by using:
% magnetic field data
latitudes =1:1:10;
alt=1:1:91;
for j=1:length(latitudes)
for i=1:length(alt)
B_igrf(:,1) = rand(3,1)
Bx(i,j)= B_igrf(1,1);
By(i,j)= B_igrf(2,1);
Bz(i,j)= B_igrf(3,1);
end
end
% map Bx
figure(2),pcolor(latitudes, alt, Bx)
figure(3),pcolor(latitudes, alt, By)
figure(4),pcolor(latitudes, alt, Bz)

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su Spline Postprocessing in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by