How do I get GNa(t) and Gk(t) on the same graph? On the graph there is supposed to be currents for m, n , h

1 次查看(过去 30 天)
How do I get GNa(t) and Gk(t) on the same graph? On the graph there are supposed to be currents for m, n , h. This is for hodgkin huxley by the way, and I have them plotted separately
%%Current less than 1mA
I_add = 0.1;
tspan = 1000;
v = -65;
m = 0;
n = 0.1;
h = 1;
s0 = [v; m; n; h];
[t1,s1] = ode15s(@hodgkinhuxeqoriginal,[0 tspan], s0, [], I_add);
figure(1)
subplot(2, 2, 1)
plot(t1,s1(:,1));
xlabel('Time');
ylabel('Membrane Potential');
title('Voltage time series');
xlim([0 50]);
subplot(2, 2, 2)
plot(t1,s1(:,2));
xlabel('Voltage');
ylabel('time');
title('t vs. m');
xlim([0 50]);
subplot(2, 2, 3)
plot(t1,s1(:,3));
xlabel('Voltage');
ylabel('n');
title('t vs. n');
xlim([0 50]);
subplot(2, 2, 4)
plot(t1,s1(:,4));
xlabel('Voltage');
ylabel('h');
title('t vs. h');
xlim([0 50]);
set(gca, 'XScale','log', 'YScale','log')
function dSdt = hodgkinhuxeq(t,s0,I_add)
%Function hodgkinhuxeq
% Inputs: t - time
% I_add - input current
% v - voltage
%potentials
g_k = 36;
g_na = 120;
g_l = 0.3;
E_k = -77;
E_na = 50;
E_l = -54;
Cm = 1;
%variables
v = s0(1);
m = s0(2);
n = s0(3);
h = s0(4);
%eqs
a_m = -0.1*((v+35)/(exp(-0.1*(v+35))-1));
b_m = 4.0*exp((-v-60)/18);
a_h = 0.07*exp(-0.05*(v+60));
b_h = 1/1+exp(-0.1*(v+30));
a_n = -0.01*(v+50)/(exp(-0.1*(v+50))-1);
b_n = 0.125*exp(-0.0125*(v+60));
%dv/dt sections
K_1 = ((g_k*(n^4))*(v-E_k));
Na_1 = (g_na*(m^3)*h)*(v-E_na);
L_1 = g_l*(v-E_l);
%derivat
dVdt = (-1/Cm)*((K_1)+(Na_1)+(L_1)-I_add);
dmdt = a_m*(1-m)-b_m*m;
dhdt = a_h*(1-h)-b_h*h;
dndt = a_n*(1-n)-b_n*n;
dSdt = [dVdt; dmdt; dndt; dhdt];
end

回答(1 个)

Srijith Kasaragod
Srijith Kasaragod 2021-10-25
As per my understanding, the currents for 'm', 'n' and 'h' are returned by the function as s1(:,2), s1(:,3) and s1(:,4) respectively. You wish to plot them in a single figure rather than subplots. The following lines of code shows how it can be achieved:
plot(t1,s1(:,2));
hold on;
plot(t1,s1(:,3));
plot(t1,s1(:,4));
hold off;
legend('m','n','h');
'hold on' command retains current plot when adding new plots. Please refer this documentation to read more on 'hold' function.

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by