为什么我使用figure功能分开作图会失效?
Show older comments
如标题所述,我在使用matlab online对我的参数拟合结果进行展示时,为了直观方便,我画了三张图来反应我所采用的算法的效果。但是中途再另一个实时文本内使用控件功能进行另一个测试后,我回到原先的文本,运行后发现,本应出现的Figure1、2、3变成了合在同一张图里的Figure4。不知这是什么原因?
以下是所述的异常绘图结果:

以下是中间用来做其他测试的、带有控件的另一个实时文本:
clearvars -except Hw Bw x2
%clear
clc
%%初始化参数
%x0=[13 ,12, 81, 0.091, 0.0061];
x1=[1.2e-3 ,1.2*1e06, 1600, 1200, 0.3];
x0=x2./x1;
alpha_u0=x0(1);
%J-A模型5个参数(初始值的归一值)
a1_u=x0(1);
Ms_u=x0(2);
a_u=x0(3);
k_u=x0(4);
c_u=x0(5);
%J-A模型5个参数(初始值)
u0=4*pi*1e-07; %真空磁导率
flag_conv = 0;
nk=1;
%%导入实测的B-H曲线
%H00=Hw;
%B0=Bw;
%L0=length(B0);
a10=x1(1);
Ms0=x1(2);
a0=x1(3);
k0=x1(4);
c0=x1(5);
%饱和磁密Bs=1.508T
Bs=1.508;
m1=max(Bw)/Bs;
m2=min(Bw)/Bs;
Lw=length(Bw);
hs=1e-2;
%提取单一周期的磁滞回线数据
r1=1;
r2=1;
r3=1;
for i=1:(Lw-1)
bh=Bw(i+1)-Bw(i);
if bh>=0
r1=r1+1;
else
break;
end
end
r2=r1;
for i=r1:(Lw-1)
bh=Bw(i+1)-Bw(i);
if bh<=0
r2=r2+1;
else
break;
end
end
r3=r2;
for i=r2:(Lw-1)
bh=Bw(i+1)-Bw(i);
if bh>=0
r3=r3+1;
else
break;
end
end
B=Bw(r1:r3);
H0=Hw(r1:r3);
L=length(B);
x0(1)=;
p_u=x0;
p=p_u.*x1;
Hc=JA_BH(p,B,hs);
fit=((1/L)^(1/nk)).*norm(H0-Hc,nk);
figure(1)
%plot(H0,B,'-','LineWidth',2,H5,B,'--x');
plot(H0,B,'--','LineWidth',2);
hold on
plot(Hc,B);
xlabel('$H/(A/m)$',"Interpreter","latex");
ylabel('$B/T$',"Interpreter","latex");
legend('$Measured$','$JA-PSO$',"Interpreter","latex");
title('$Measured\,\&\,Modeled\,B-H\,Curves$',"Interpreter","latex");
grid on
grid minor
以下是最开始那个文本的绘图代码:
figure(1)
%plot(H0,B,'-','LineWidth',2,H5,B,'--x');
plot(H0,B,'--','LineWidth',2);
hold on
plot(H5,B);
xlabel('$H/(A/m)$',"Interpreter","latex");
ylabel('$B/T$',"Interpreter","latex");
legend('$Measured$','$JA-PSO$',"Interpreter","latex");
title('$Measured\,\&\,Modeled\,B-H\,Curves$',"Interpreter","latex");
grid on
grid minor
figure(2)
set(gcf,'color','white');
plot(1:length(ff),ff)
xlabel('$Times\,of\,Iterations$',"Interpreter","latex");
ylabel('$Norm-1\,of\,Error\,per\,Cycle\,(A/m) $',"Interpreter","latex");
title('$The\,Convergence\,of\,Parameter\,Eploration$',"Interpreter","latex");
grid on
grid minor
figure(3)
plot(0.00001:0.00001:(0.00001*length(B)),[H0;H5]);
xlabel('$time/s$',"Interpreter","latex");
ylabel('$H/(A/m)$',"Interpreter","latex");
legend('$Measured$','$JA-PSO$',"Interpreter","latex");
title('$Measured\,\&\,Modeled\,H\,Waveforms$',"Interpreter","latex");
grid on
grid minor
Answers (0)
Categories
Find more on App 构建 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!