Can graphs in Matlab provide a more detailed scale?

4 次查看(过去 30 天)
I have 2 different function and I want to combine the plot. In Matlab cannot show the difference plot of 2 function but in excel can show the difference. How to solve that?
This is the function that has been combined
clc;clear;
%input parameter
delta=50;
gamma=75;
K1=10^-4;
K2=5*10^-4;
K3=10^-3;
K4=5*10^-3;
K5=10^-2;
K6=5*10^-2;
Ko=0.1;
n=6;
Oa=10;
Pa=100;
mu_1=10^-3;
mu_2=10^-3;
mu_3=10^-3;
mu_4=10^-3;
mu_5=10^-3;
mu_6=10^-3;
mu_o=10^-4;
mu_p= 10^-5;
%komponen paper 1
Mg = 0.047;
lambdaMf = 2*10^-1;
Fo = 3.36*10^-5;
KFo = 2.58*10^-5;
lambdaMa = 2.3*10^-1;
Ao = 0.14;
KAo = 10^-2;
beta = 10;
epsilon1 = 0.3333;
epsilon2 = 0.8;
lambdaM1Tb = 6*10^-1;
Tb=10^-2;
KTb = 2.5*10^-3;
makro1 = 0.02;
makro2 = 0.02;
dM1= 0.015;
dM2= 0.015;
dtmakro1 = (Mg*(lambdaMf*(Fo/(Fo+KFo))+lambdaMa*(Ao/(Ao+KAo)))*(epsilon1*beta/(beta*(epsilon1+epsilon2)))*makro1)+(lambdaM1Tb*(Tb/(Tb+KTb))*makro1)-dM1*makro1;
dtmakro2 = (Mg*(lambdaMf*(Fo/(Fo+KFo))+lambdaMa*(Ao/(Ao+KAo)))*(epsilon2/(beta*(epsilon1+epsilon2)))*makro2)+(lambdaM1Tb*(Tb/(Tb+KTb))*makro1)-dM2*makro2;
%input initial condition
M1(1)=10;
M2(1)=0;
M3(1)=0;
M4(1)=0;
M5(1)=0;
M6(1)=0;
O(1)=0;
P(1)=0;
M12(1)=10;
M22(1)=0;
M32(1)=0;
M42(1)=0;
M52(1)=0;
M62(1)=0;
O2(1)=0;
P2(1)=0;
%input for time
t(1)=0;
dt=0.01; %time interval
t=0:dt:100; %time span
%input empty array
T=zeros(length(t)+1,1); %empty array for t
M1=zeros(length(t)+1,1); %empty array for M1
M2=zeros(length(t)+1,1); %empty array for M2
M3=zeros(length(t)+1,1); %empty array for M3
M4=zeros(length(t)+1,1); %empty array for M4
M5=zeros(length(t)+1,1); %empty array for M5
M6=zeros(length(t)+1,1); %empty array for M6
O=zeros(length(t)+1,1);
P=zeros(length(t)+1,1);
M12=zeros(length(t)+1,1); %empty array for M1
M22=zeros(length(t)+1,1); %empty array for M2
M32=zeros(length(t)+1,1); %empty array for M3
M42=zeros(length(t)+1,1); %empty array for M4
M52=zeros(length(t)+1,1); %empty array for M5
M62=zeros(length(t)+1,1); %empty array for M6
O2=zeros(length(t)+1,1);
P2=zeros(length(t)+1,1);
sumter=K2*M2+K3*M3+K4*M4+K5*M5;
for j = 1:length(t)
T(j+1)=T(j)+dt;
M1(j+1)=M1(j)+1./(1+exp(-T(j)));
M1(j+1) = M1(j)+(dt*(delta*M1(j+1)*(1-(M1(j+1)/gamma))-2*K1*M1(j+1)*M1(j+1)-M1(j+1)*sumter(j+1))-((Oa-n)*K6*M1(j+1)*M6(j+1))-((Pa-Oa)*Ko*M1(j+1)*O(j+1))-(mu_1*M1(j+1)));
M2(j+1) = M2(j)+(dt*(K1*M1(j)*M1(j)-K2*M1(j)*M2(j))-(mu_2*M2(j+1))-dtmakro1+dtmakro2);
M3(j+1) = M3(j)+(dt*(K2*M1(j)*M2(j)-K3*M1(j)*M3(j))-mu_3*M3(j));
M4(j+1) = M4(j)+(dt*(K3*M1(j)*M3(j)-K4*M1(j)*M4(j))-mu_4*M4(j));
M5(j+1) = M5(j)+(dt*(K4*M1(j)*M4(j)-K5*M1(j)*M5(j))-mu_5*M5(j));
M6(j+1) = M6(j)+(dt*(K5*M1(j)*M5(j)-K6*M1(j)*M6(j))-mu_6*M6(j));
O(j+1) = O(j)+(dt*(K6*M1(j)*M6(j)-Ko*M1(j)*O(j)-mu_o*O(j)));
P(j+1) = P(j)+(dt*(Ko*M1(j)*O(j)-mu_p*P(j)));
M12(j+1) = M12(j)+(dt*(delta*M12(j+1)*(1-(M12(j+1)/gamma))-2*K1*M12(j+1)*M12(j+1)-M12(j+1)*sumter(j+1))-((Oa-n)*K6*M12(j+1)*M62(j+1))-((Pa-Oa)*Ko*M12(j+1)*O2(j+1))-(mu_1*M12(j+1)));
M22(j+1) = M22(j)+(dt*(K1*M12(j)*M12(j)-K2*M12(j)*M22(j))-(mu_2*M22(j+1)));
M32(j+1) = M32(j)+(dt*(K2*M12(j)*M22(j)-K3*M12(j)*M32(j))-mu_3*M32(j));
M42(j+1) = M42(j)+(dt*(K3*M12(j)*M32(j)-K4*M12(j)*M42(j))-mu_4*M42(j));
M52(j+1) = M52(j)+(dt*(K4*M12(j)*M42(j)-K5*M12(j)*M52(j))-mu_5*M52(j));
M62(j+1) = M62(j)+(dt*(K5*M12(j)*M52(j)-K6*M12(j)*M62(j))-mu_6*M62(j));
O2(j+1) = O2(j)+(dt*(K6*M12(j)*M62(j)-Ko*M12(j)*O2(j)-mu_o*O2(j)));
P2(j+1) = P2(j)+(dt*(Ko*M12(j)*O2(j)-mu_p*P2(j)));
end
%figure
%subplot (3,1,1)
figure
%hold on
plot(T,M1,'r', T,M12,'b','Linewidth',2)
legend ('M1', 'M12');
xlabel('time (days)')
ylabel('M1 (gr/ml)')
%subplot (3,1,2)
figure
%hold on
plot(T,M2,'b',T,M22,'r','Linewidth',2)
legend ('M2', 'M22');
xlabel('time (days)')
ylabel('M2 (gr/ml)')
%subplot (3,1,3)
figure
%hold on
plot(T,M3,'g',T,M32,'b','Linewidth',2)
legend ('M3', 'M32');
xlabel('time (days)')
ylabel('M3 (gr/ml)')
%subplot (2,1,2)
figure
%hold on
plot(T,M4,'m',T,M42,'g','Linewidth',2)
legend ('M4', 'M42');
xlabel('time (days)')
ylabel('M4 (gr/ml)')
%subplot (2,1,1)
figure
%hold on
plot(T,M5,'k',T,M52,'g','Linewidth',2)
legend ('M5', 'M52');
xlabel('time (days)')
ylabel('M5 (gr/ml)')
figure
%hold on
plot(T,M6,'m',T,M62,'g','Linewidth',2)
legend ('M6', 'M62');
xlabel('time (days)')
ylabel('M6 (gr/ml)')
%subplot (2,1,1)
figure
%hold on
plot(T,O,'k',T,O2,'g','Linewidth',2)
legend ('O', 'O2');
xlabel('time (days)')
ylabel('O (gr/ml)')
figure
%hold on
plot(T,P,'m',T,P2,'g','Linewidth',2)
legend ('P', 'P2');
xlabel('time (days)')
ylabel('P (gr/ml)')

采纳的回答

Steven Lord
Steven Lord 2023-7-19
Let's look at the data you used to create your first graph as I suspect the insights we gain from that will apply to the others as well.
clc;clear;
%input parameter
delta=50;
gamma=75;
K1=10^-4;
K2=5*10^-4;
K3=10^-3;
K4=5*10^-3;
K5=10^-2;
K6=5*10^-2;
Ko=0.1;
n=6;
Oa=10;
Pa=100;
mu_1=10^-3;
mu_2=10^-3;
mu_3=10^-3;
mu_4=10^-3;
mu_5=10^-3;
mu_6=10^-3;
mu_o=10^-4;
mu_p= 10^-5;
%komponen paper 1
Mg = 0.047;
lambdaMf = 2*10^-1;
Fo = 3.36*10^-5;
KFo = 2.58*10^-5;
lambdaMa = 2.3*10^-1;
Ao = 0.14;
KAo = 10^-2;
beta = 10;
epsilon1 = 0.3333;
epsilon2 = 0.8;
lambdaM1Tb = 6*10^-1;
Tb=10^-2;
KTb = 2.5*10^-3;
makro1 = 0.02;
makro2 = 0.02;
dM1= 0.015;
dM2= 0.015;
dtmakro1 = (Mg*(lambdaMf*(Fo/(Fo+KFo))+lambdaMa*(Ao/(Ao+KAo)))*(epsilon1*beta/(beta*(epsilon1+epsilon2)))*makro1)+(lambdaM1Tb*(Tb/(Tb+KTb))*makro1)-dM1*makro1;
dtmakro2 = (Mg*(lambdaMf*(Fo/(Fo+KFo))+lambdaMa*(Ao/(Ao+KAo)))*(epsilon2/(beta*(epsilon1+epsilon2)))*makro2)+(lambdaM1Tb*(Tb/(Tb+KTb))*makro1)-dM2*makro2;
%input initial condition
M1(1)=10;
M2(1)=0;
M3(1)=0;
M4(1)=0;
M5(1)=0;
M6(1)=0;
O(1)=0;
P(1)=0;
M12(1)=10;
M22(1)=0;
M32(1)=0;
M42(1)=0;
M52(1)=0;
M62(1)=0;
O2(1)=0;
P2(1)=0;
%input for time
t(1)=0;
dt=0.01; %time interval
t=0:dt:100; %time span
%input empty array
T=zeros(length(t)+1,1); %empty array for t
M1=zeros(length(t)+1,1); %empty array for M1
M2=zeros(length(t)+1,1); %empty array for M2
M3=zeros(length(t)+1,1); %empty array for M3
M4=zeros(length(t)+1,1); %empty array for M4
M5=zeros(length(t)+1,1); %empty array for M5
M6=zeros(length(t)+1,1); %empty array for M6
O=zeros(length(t)+1,1);
P=zeros(length(t)+1,1);
M12=zeros(length(t)+1,1); %empty array for M1
M22=zeros(length(t)+1,1); %empty array for M2
M32=zeros(length(t)+1,1); %empty array for M3
M42=zeros(length(t)+1,1); %empty array for M4
M52=zeros(length(t)+1,1); %empty array for M5
M62=zeros(length(t)+1,1); %empty array for M6
O2=zeros(length(t)+1,1);
P2=zeros(length(t)+1,1);
sumter=K2*M2+K3*M3+K4*M4+K5*M5;
for j = 1:length(t)
T(j+1)=T(j)+dt;
M1(j+1)=M1(j)+1./(1+exp(-T(j)));
M1(j+1) = M1(j)+(dt*(delta*M1(j+1)*(1-(M1(j+1)/gamma))-2*K1*M1(j+1)*M1(j+1)-M1(j+1)*sumter(j+1))-((Oa-n)*K6*M1(j+1)*M6(j+1))-((Pa-Oa)*Ko*M1(j+1)*O(j+1))-(mu_1*M1(j+1)));
M2(j+1) = M2(j)+(dt*(K1*M1(j)*M1(j)-K2*M1(j)*M2(j))-(mu_2*M2(j+1))-dtmakro1+dtmakro2);
M3(j+1) = M3(j)+(dt*(K2*M1(j)*M2(j)-K3*M1(j)*M3(j))-mu_3*M3(j));
M4(j+1) = M4(j)+(dt*(K3*M1(j)*M3(j)-K4*M1(j)*M4(j))-mu_4*M4(j));
M5(j+1) = M5(j)+(dt*(K4*M1(j)*M4(j)-K5*M1(j)*M5(j))-mu_5*M5(j));
M6(j+1) = M6(j)+(dt*(K5*M1(j)*M5(j)-K6*M1(j)*M6(j))-mu_6*M6(j));
O(j+1) = O(j)+(dt*(K6*M1(j)*M6(j)-Ko*M1(j)*O(j)-mu_o*O(j)));
P(j+1) = P(j)+(dt*(Ko*M1(j)*O(j)-mu_p*P(j)));
M12(j+1) = M12(j)+(dt*(delta*M12(j+1)*(1-(M12(j+1)/gamma))-2*K1*M12(j+1)*M12(j+1)-M12(j+1)*sumter(j+1))-((Oa-n)*K6*M12(j+1)*M62(j+1))-((Pa-Oa)*Ko*M12(j+1)*O2(j+1))-(mu_1*M12(j+1)));
M22(j+1) = M22(j)+(dt*(K1*M12(j)*M12(j)-K2*M12(j)*M22(j))-(mu_2*M22(j+1)));
M32(j+1) = M32(j)+(dt*(K2*M12(j)*M22(j)-K3*M12(j)*M32(j))-mu_3*M32(j));
M42(j+1) = M42(j)+(dt*(K3*M12(j)*M32(j)-K4*M12(j)*M42(j))-mu_4*M42(j));
M52(j+1) = M52(j)+(dt*(K4*M12(j)*M42(j)-K5*M12(j)*M52(j))-mu_5*M52(j));
M62(j+1) = M62(j)+(dt*(K5*M12(j)*M52(j)-K6*M12(j)*M62(j))-mu_6*M62(j));
O2(j+1) = O2(j)+(dt*(K6*M12(j)*M62(j)-Ko*M12(j)*O2(j)-mu_o*O2(j)));
P2(j+1) = P2(j)+(dt*(Ko*M12(j)*O2(j)-mu_p*P2(j)));
end
Let's plot M1 and M12 separately.
figure
plot(T, M1)
figure
plot(T, M12)
Are the values in M12 actually exactly 0?
[minvalue, maxvalue] = bounds(M12)
minvalue = 0
maxvalue = 0
So that looks correct. How about the other variables whose names end with 2?
[minvalue, maxvalue] = bounds(M22)
minvalue = 0
maxvalue = 0
[minvalue, maxvalue] = bounds(M32)
minvalue = 0
maxvalue = 0
[minvalue, maxvalue] = bounds(M42)
minvalue = 0
maxvalue = 0
[minvalue, maxvalue] = bounds(M52)
minvalue = 0
maxvalue = 0
[minvalue, maxvalue] = bounds(M62)
minvalue = 0
maxvalue = 0
[minvalue, maxvalue] = bounds(O2)
minvalue = 0
maxvalue = 0
[minvalue, maxvalue] = bounds(P2)
minvalue = 0
maxvalue = 0
Given the data, all those plots you showed look correct to me. Could you say more about what you believe MATLAB is doing / plotting incorrectly?

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Function Creation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by