gpt4 book ai didi

matlab - 在 Matlab 中绘制多个图形

转载 作者:行者123 更新时间:2023-12-04 05:59:20 25 4
gpt4 key购买 nike

我正在使用一些处理数据(在卡尔曼滤波器中)并创建一系列等高线图的 matlab 代码。它已经在 matlab 2006a 的 RHEL 4 服务器上运行了几年,但我的老板最近要求将所有服务器更新到 RHEL 6……至少是 matlab 2007a。我已经计算出这些版本之间的所有折旧,但我仍然遇到一个主要问题。

创建和打印不同等高线图的代码适用于首先创建的三个图中的任何一个。它看起来像这样:
enter image description here

不幸的是,接下来的两个图如下所示:

enter image description here

这三个图形在不同的函数中独立绘制,我使用 clf("reset");在创建每个图形之前和之后。每个函数都可以独立工作,但是当所有三个都被绘制时,第二个和第三个数字都搞砸了。有没有其他人有这个问题?这是创建其中一个图形的代码。

function Crd = TEC_plot(ITEC,RT,Param,Input,t,OutPath,RxExtAll,Time)
% Generate TEC plot
Function_for_Spline_Smoothing = [.05 .1 .05; .1 .4 .1; .05 .1 .05];
ITEC = conv2(ITEC,Function_for_Spline_Smoothing,'same'); % add more of these lines to make contours smoother
ITEC = conv2(ITEC,Function_for_Spline_Smoothing,'same'); % add more of these lines to make contours smoother
% ITEC = conv2(ITEC,Function_for_Spline_Smoothing,'same'); % add more of these lines to make contours smoother
% ITEC = conv2(ITEC,Function_for_Spline_Smoothing,'same'); % add more of these lines to make contours smoother

earth('CAMERA',RT.Camera,'FIG',1);
figure;
warning off; hold on;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Changed 13 February 2007 to make plots prettier
thinning_scale=2; % (1 to 10) increase this value to thin the density of the contour number labels
[cscale,hgt]=m_contour(Param.Grid.LonAxis,Param.Grid.LatAxis,ITEC, ...
round(RT.Levels(1:thinning_scale:end)/5)*5);
hold on
m_contourf(Param.Grid.LonAxis,Param.Grid.LatAxis,ITEC,RT.Levels);
shading flat

m_coast('line','color','y','LineWidth',1);

clabel(cscale,hgt,'labelspacing',72,'rotation',0,'fontsize',10 ...
,'FontAngle','italic','color','w');
axis([-.65 .6 .25 1.32]) % hardwiring axis length since the coastline runs off of the plot
% Changed 13 February 2007
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% %-------------------- to include different station markers for different sources -------------------
if ~isempty(Input.Data) % Plot receivers used in this inversion

Crd=uniquerows(double(cat(1,RxExtAll)));
RxType=round(Crd(:,4));
Crd=cartsph(Crd)*180/pi;

i1 = find( (Crd(:,3) > RT.Camera(3)).*(Crd(:,3) < RT.Camera(4)).*...
(Crd(:,2) > RT.Camera(1)).*(Crd(:,2) < RT.Camera(2)).*...
(RxType==1) );

i2 = find( (Crd(:,3) > RT.Camera(3)).*(Crd(:,3) < RT.Camera(4)).*...
(Crd(:,2) > RT.Camera(1)).*(Crd(:,2) < RT.Camera(2)).*...
(RxType==2) );

i3 = find( (Crd(:,3) > RT.Camera(3)).*(Crd(:,3) < RT.Camera(4)).*...
(Crd(:,2) > RT.Camera(1)).*(Crd(:,2) < RT.Camera(2)).*...
(RxType==3) );

m_plot(Crd(i1,3),Crd(i1,2),'ro','markersize',5,'LineWidth',2);
% m_plot(Crd(i1,3),Crd(i1,2),'r.','markersize',6,'LineWidth',2);
m_plot(Crd(i2,3),Crd(i2,2),'r^','markersize',5,'LineWidth',2);
% m_plot(Crd(i2,3),Crd(i2,2),'r.','markersize',6,'LineWidth',2);
m_plot(Crd(i3,3),Crd(i3,2),'rp','markersize',5,'LineWidth',2);

plot(-.6,.45,'ro','markersize',5,'LineWidth',2);text(-.55,.45,'CORS','Color','k')
plot(-.6,.39,'r^','markersize',5,'LineWidth',2);text(-.55,.39,'GPS/Met','Color','k')
plot(-.6,.33,'rp','markersize',5,'LineWidth',2);text(-.55,.33,'RTIGS','Color','k')

end
% % -------------------------------------------------------------------------------

hold off; warning on;axis off;

% caxis([RT.Levels(1),(RT.Levels(length(RT.Levels)))/2]); colorbar('vert'); %Color bar from 0 to 50 --- for Low Solar Activity
caxis([RT.Levels(1),(RT.Levels(length(RT.Levels)))]); colorbar('vert'); %Color bar from 0 to 100 --- for High Solar Activity

title(sprintf('Total Electron Content Units x 10^1^6 m^-^2'),'Fontsize',11)
if size(Crd,1)==0,
title(sprintf('Total Electron Content Units x 10^1^6 m^-^2 Caution: No Data Available, IRI95 Only'),'Fontsize',10)
end
whitebg('w')
text(-0.6,0.22,sprintf('%s from %s to %s UT NOAA/SWPC Boulder, CO USA (op.ver. 1.0)',datestr(Time(t)+1E-8,1),datestr(Time(t)+1E-8,15),datestr(Time(t)+1E-7+15/1440,15)),'Fontsize',11)
whitebg('w')

% This option print to a file
% set(gcf, 'Position', [0,0,1950,1467]);
% print('-f1','-dpng','-painters',filename([OutPath,'{YYYY}{MM}{DD}{HRMN}_TEC'],Time(t)));
% system(['convert ', filename([OutPath,'{YYYY}{MM}{DD}{HRMN}_TEC.png'],Time(t)),' -scale 650x489 ',' -colors 256 ', filename([OutPath,'{YYYY}{MM}{DD}{HRMN}_TEC.png'],Time(t))]);


% Printing a postscript file because requirements for the automatic reboot
print('-f1','-dpsc','-r1000','-painters', filename([OutPath,'{YYYY}{MM}{DD}{HRMN}_TEC'],Time(t)));

% Convert the postscript file to jpg using ghostscripts
system(['gs -q -dBATCH -dNOPAUSE -r300 -sDEVICE=jpeg -sOutputFile=',filename([OutPath,'{YYYY}{MM}{DD}{HRMN}_TEC.jpg'],Time(t)),' ', filename([OutPath,'{YYYY}{MM}{DD}{HRMN}_TEC.ps'],Time(t))]);
% Converting from jpg to png and reducing the size of the figure.
system(['convert ',filename([OutPath,'{YYYY}{MM}{DD}{HRMN}_TEC.jpg'],Time(t)),' -crop 2050x1675+325+775 ',' -scale 650x489 ',' -colors 256 ', filename([OutPath,'{YYYY}{MM}{DD}{HRMN}_TEC.png'],Time(t))]);
% Removing the jpg and ps files (ask Cliff how can we put both files in just one command)
%system(['rm ',filename([OutPath,'*.jpg'],Time(t))]);
%system(['rm ',filename([OutPath,'*.ps'],Time(t))]);
end

最佳答案

尽量不要使用 clf这将清除您的整个数字,但使用 figure中间开出三个独立人物。看看它会起作用:)

编辑:那只是猜测而没有实际看到您的代码

关于matlab - 在 Matlab 中绘制多个图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9118664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com