Tag Archives: matlab
How to find x values where y= 0 using newtons method and secant method?
I´ve drawn up newtons method in an easy function as:
function [x, iter] = newton(f, df, x)
maxiter = 1000;
iter = 0;
d = 100;
while abs(d) > sqrt(eps)*abs(x) && iter < maxiter
iter = iter + 1;
d = -f(x)/df(x);
x = x + d;
end
if iter == maxiter
disp(‘Maximum number of iterations performed. Answer is probably wrong.’)
end
end
The secant method i’ve drawn up like this:
function [xout,iter] = sekant(f,x,x1)
iter = 0;
maxiter = 1000;
while abs(x1-x) > 1e-6
iter = iter + 1;
d = (f(x1) – f(x))./(x1-x);
xout = (x1-f(x1)./d);
x = x1;
x1 = xout;
if iter == maxiter
disp(‘No points of zeros found’)
break
end
end
end
Here is my problem, I wish to put both of them together to find points where y = 0 for several functions as polynomials and differential eqations. My thought process has been that i need to find an interval of x values where these methods are used and with them make the inteval smaller untill im close enough to find the "approximation" or actual value of 0.I´ve drawn up newtons method in an easy function as:
function [x, iter] = newton(f, df, x)
maxiter = 1000;
iter = 0;
d = 100;
while abs(d) > sqrt(eps)*abs(x) && iter < maxiter
iter = iter + 1;
d = -f(x)/df(x);
x = x + d;
end
if iter == maxiter
disp(‘Maximum number of iterations performed. Answer is probably wrong.’)
end
end
The secant method i’ve drawn up like this:
function [xout,iter] = sekant(f,x,x1)
iter = 0;
maxiter = 1000;
while abs(x1-x) > 1e-6
iter = iter + 1;
d = (f(x1) – f(x))./(x1-x);
xout = (x1-f(x1)./d);
x = x1;
x1 = xout;
if iter == maxiter
disp(‘No points of zeros found’)
break
end
end
end
Here is my problem, I wish to put both of them together to find points where y = 0 for several functions as polynomials and differential eqations. My thought process has been that i need to find an interval of x values where these methods are used and with them make the inteval smaller untill im close enough to find the "approximation" or actual value of 0. I´ve drawn up newtons method in an easy function as:
function [x, iter] = newton(f, df, x)
maxiter = 1000;
iter = 0;
d = 100;
while abs(d) > sqrt(eps)*abs(x) && iter < maxiter
iter = iter + 1;
d = -f(x)/df(x);
x = x + d;
end
if iter == maxiter
disp(‘Maximum number of iterations performed. Answer is probably wrong.’)
end
end
The secant method i’ve drawn up like this:
function [xout,iter] = sekant(f,x,x1)
iter = 0;
maxiter = 1000;
while abs(x1-x) > 1e-6
iter = iter + 1;
d = (f(x1) – f(x))./(x1-x);
xout = (x1-f(x1)./d);
x = x1;
x1 = xout;
if iter == maxiter
disp(‘No points of zeros found’)
break
end
end
end
Here is my problem, I wish to put both of them together to find points where y = 0 for several functions as polynomials and differential eqations. My thought process has been that i need to find an interval of x values where these methods are used and with them make the inteval smaller untill im close enough to find the "approximation" or actual value of 0. newtons method, secant method MATLAB Answers — New Questions
1D advection diffusion with pdepe
Hello guys, i want to solve the 1D advection diffusion PDE in dimensionless form. The equation is the following:
dC/dW=(1/Pe)*d^2C/dX^2-dC/dX
I want to simlulate the dimensionless concentration for an finite element in x-Direction. Because the variables are dimensionless, my inital condition is C=1 for all X at W=0. Then, for W>0, the concentration must decrease, because of an Flow with an liquid with a concentration of zero. I want to plot the dimensinlos concentration C vs. W and X.
I think, my mistake are the boundary conditions, but I can´t find the solution.
I would be happy about a solution, to solve my problem.
This is my code so far:
function [c, f, s] = pdefun(X, W, C, dCdX)
Pe = 10;
c = 1;
f = (1/Pe)*dCdX;
s = -dCdX;
end
function C0 = ic(X)
C0 = 1;
end
function [pl, ql, pr, qr] = bc(Xl, Cl, Xr, Cr, W)
Pe=10;
pl =Cl;
ql = -1/Pe;
pr = Cr-1;
qr = 0;
end
X = linspace(0, 1, 10);
W = linspace(0, 10, 100);
m = 0;
sol = pdepe(m, @pdefun, @ic, @bc, X, W);
u = sol(:,:,1);
surf(X,W,u)
xlabel(‘X’)
ylabel(‘W’)
zlabel(‘u(W,X)’)
view([150 25])Hello guys, i want to solve the 1D advection diffusion PDE in dimensionless form. The equation is the following:
dC/dW=(1/Pe)*d^2C/dX^2-dC/dX
I want to simlulate the dimensionless concentration for an finite element in x-Direction. Because the variables are dimensionless, my inital condition is C=1 for all X at W=0. Then, for W>0, the concentration must decrease, because of an Flow with an liquid with a concentration of zero. I want to plot the dimensinlos concentration C vs. W and X.
I think, my mistake are the boundary conditions, but I can´t find the solution.
I would be happy about a solution, to solve my problem.
This is my code so far:
function [c, f, s] = pdefun(X, W, C, dCdX)
Pe = 10;
c = 1;
f = (1/Pe)*dCdX;
s = -dCdX;
end
function C0 = ic(X)
C0 = 1;
end
function [pl, ql, pr, qr] = bc(Xl, Cl, Xr, Cr, W)
Pe=10;
pl =Cl;
ql = -1/Pe;
pr = Cr-1;
qr = 0;
end
X = linspace(0, 1, 10);
W = linspace(0, 10, 100);
m = 0;
sol = pdepe(m, @pdefun, @ic, @bc, X, W);
u = sol(:,:,1);
surf(X,W,u)
xlabel(‘X’)
ylabel(‘W’)
zlabel(‘u(W,X)’)
view([150 25]) Hello guys, i want to solve the 1D advection diffusion PDE in dimensionless form. The equation is the following:
dC/dW=(1/Pe)*d^2C/dX^2-dC/dX
I want to simlulate the dimensionless concentration for an finite element in x-Direction. Because the variables are dimensionless, my inital condition is C=1 for all X at W=0. Then, for W>0, the concentration must decrease, because of an Flow with an liquid with a concentration of zero. I want to plot the dimensinlos concentration C vs. W and X.
I think, my mistake are the boundary conditions, but I can´t find the solution.
I would be happy about a solution, to solve my problem.
This is my code so far:
function [c, f, s] = pdefun(X, W, C, dCdX)
Pe = 10;
c = 1;
f = (1/Pe)*dCdX;
s = -dCdX;
end
function C0 = ic(X)
C0 = 1;
end
function [pl, ql, pr, qr] = bc(Xl, Cl, Xr, Cr, W)
Pe=10;
pl =Cl;
ql = -1/Pe;
pr = Cr-1;
qr = 0;
end
X = linspace(0, 1, 10);
W = linspace(0, 10, 100);
m = 0;
sol = pdepe(m, @pdefun, @ic, @bc, X, W);
u = sol(:,:,1);
surf(X,W,u)
xlabel(‘X’)
ylabel(‘W’)
zlabel(‘u(W,X)’)
view([150 25]) 1d advection diffusion, matlab, simulation MATLAB Answers — New Questions
How i use break in continues data?
Hello, this is my code for a diseases and I want to know the effect of drugs (blue line) if I stoped from days 30-60 and continue with microglia from days 60-180. It’s use break code or anything else?
clc;clear;
%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;
%input for time
t(1)=0;
dt=0.01; %time interval
t=0:dt:180; %time span
%component for microglia
Mg = 0.047;
lambdaMf = 5*10^-2;
Fo = 3.36*10^-11;
KFo = 2.58*10^-11;
lambdaMa = 2.23*10^-2;
Ao = 0.14;
KAo = 10^-7;
beta = 10;
epsilon1 = 0.3333;
epsilon2 = 0.8;
lambdaM1Tb = 6*10^-3;
Tb=10^-6;
KTb = 2.5*10^-7;
makro1 = 0.02;
makro2 = 0.02;
dM1= 0.015;
dM2= 0.015;
tmakro1 = (Mg*(lambdaMf*(Fo/(Fo+KFo))+lambdaMa*(Ao/(Ao+KAo)))*(epsilon1*beta/beta*(epsilon1+epsilon2)))-(lambdaM1Tb*(Tb/(Tb+KTb)*makro1))-(dM1*makro1);
tmakro2 = (Mg*(lambdaMf*(Fo/(Fo+KFo))+lambdaMa*(Ao/(Ao+KAo)))*(epsilon2/beta*(epsilon1+epsilon2)))+(lambdaM1Tb*(Tb/(Tb+KTb))*makro1)-(dM2*makro2);
%component drugs
Abi = 10^-6;
lambdaN = 8*10^-4;
lambdaA = 8*10^-4;
daboM = 2*10^-3;
dabom = 10^-2; %clearance rate by macrophages
makrofag1 = 0;
makrofag2 = 0;
mikro1 = 0.02;
mikro2 = 0.02;
teta = 0.9;
h = 10;
Kaob = 7*10^-3;
AoB = 10^-8;
dtdab = Abi*(dt*(0.14*1.9*10^-4*exp(-1.9*10^-4)))+ (lambdaN*1)+(lambdaA*1)-(dabom*(makrofag1+(teta*makrofag2))+daboM*(mikro1+(teta*mikro2))*(1+h))*(AoB/(AoB+Kaob));
%initial condition with microglia
M1(1)=10;
M2(1)=0;
M3(1)=0;
M4(1)=0;
M5(1)=0;
M6(1)=0;
O(1)=0;
P(1)=0;
%initial condition without drugs
M12(1)=10;
M22(1)=0;
M32(1)=0;
M42(1)=0;
M52(1)=0;
M62(1)=0;
O2(1)=0;
P2(1)=0;
%initial condition with drugs
M14(1)=10;
M24(1)=0;
M34(1)=0;
M44(1)=0;
M54(1)=0;
M64(1)=0;
O4(1)=0;
P4(1)=0;
%empty array with microglia
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); %empty array for O
P=zeros(length(t)+1,1); %empty array for P
sumter=K2*M2+K3*M3+K4*M4+K5*M5;
%empty array without drugs
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); %empty array for O
P2=zeros(length(t)+1,1); %empty array for P
sumter2=K2*M22+K3*M32+K4*M42+K5*M52;
%empty array with drugs depend time
M14=zeros(length(t)+1,1); %empty array for M1
M24=zeros(length(t)+1,1); %empty array for M2
M34=zeros(length(t)+1,1); %empty array for M3
M44=zeros(length(t)+1,1); %empty array for M4
M54=zeros(length(t)+1,1); %empty array for M5
M64=zeros(length(t)+1,1); %empty array for M6
O4=zeros(length(t)+1,1); %empty array for O
P4=zeros(length(t)+1,1); %empty array for P
sumter2=K2*M24+K4*M34+K4*M44+K5*M54;
for j = 1:length(t)
%with microglia
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))-tmakro1-tmakro2);
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)));
%without drugs
T(j+1)=T(j)+dt;
M12(j+1) = M12(j)+1./(1+exp(-T(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)*sumter2(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)));
%with drugs depend by time
T(j+1)=T(j)+dt;
M14(j+1) = M14(j)+1./(1+exp(-T(j)));
M14(j+1) = M14(j)+(dt*(delta*M14(j+1)*(1-(M14(j+1)/gamma))-2*K1*M14(j+1)*M14(j+1)-M14(j+1)*sumter2(j+1))-((Oa-n)*K6*M14(j+1)*M64(j+1))-((Pa-Oa)*Ko*M14(j+1)*O4(j+1))-(mu_1*M14(j+1)));
M24(j+1) = M24(j)+(dt*(K1*M14(j)*M14(j)-K2*M14(j)*M24(j))-(mu_2*M24(j+1))-tmakro1-tmakro2-dtdab);
M34(j+1) = M34(j)+(dt*(K2*M14(j)*M24(j)-K3*M14(j)*M34(j))-mu_3*M34(j));
M44(j+1) = M44(j)+(dt*(K3*M14(j)*M34(j)-K4*M14(j)*M44(j))-mu_4*M44(j));
M54(j+1) = M54(j)+(dt*(K4*M14(j)*M44(j)-K5*M14(j)*M54(j))-mu_5*M54(j));
M64(j+1) = M64(j)+(dt*(K5*M14(j)*M54(j)-K6*M14(j)*M64(j))-mu_6*M64(j));
O4(j+1) = O4(j)+(dt*(K6*M14(j)*M64(j)-Ko*M14(j)*O4(j)-mu_o*O4(j)));
P4(j+1) = P4(j)+(dt*(Ko*M14(j)*O4(j)-mu_p*P4(j)));
end
subplot (2,2,1)
plot( T,M12,’r’,T,M1,’k’,T,M14,’b’,’Linewidth’,4)
legend (‘M1 without drugs’,’M1 with microglia’, ‘M1 with drugs’);
%xticks ([60 120 180 240 300 360 420 480 540 600 660 720 780 840 900 960 1020 1080])
xticks ([30 60 90 120 150 180 ])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M1’)
subplot (2,2,2)
plot(T,M22,’r’,T,M2,’k’,T,M24,’b’,’Linewidth’,4)
legend (‘M2 without drugs’,’M2 with microglia’,’M2 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([ 0 2 4 6 8 10 12 14 16])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M2’)
subplot (2,2,3)
plot(T,M32,’r’,T,M3,’k’,T,M34,’b’,’Linewidth’,4)
legend (‘M3 without drugs’,’M3 with microglia’,’M3 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.5 1 1.5 2 2.5 3 3.5])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M3’)
subplot (2,2,4)
plot(T,M42,’r’,T,M4,’k’,T,M44,’b’,’Linewidth’,4)
legend (‘M4 without drugs’,’M4 with microglia’, ‘M4 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.1 0.2 0.3 0.4 0.5])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M4’)
subplot (2,2,1)
plot(T,M52,’r’,T,M5,’k’,T,M54,’b’,’Linewidth’,4)
legend (‘M5 without drugs’,’M5 with microglia’, ‘M5 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.05 0.1 0.15 0.2])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("M5")
subplot (2,2,2)
plot(T,M62,’r’,T,M6,’k’,T,M64,’b’,’Linewidth’,4)
legend (‘M6 without drugs’,’M6 with microglia’,’M6 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.01 0.02 0.03 0.04 ])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("M6")
subplot (2,2,3)
plot(T,O2,’r’,T,O,’k’,T,O4,’b’,’Linewidth’,4)
legend (‘O without drugs’,’O with microglia’, ‘O with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.005 0.01 0.015 0.02])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("O")
subplot(2,2,4)
plot(T,P2,’r’,T,P,’k’,T,P4,’b’,’Linewidth’,4)
legend (‘P without drugs’,’P microglia’,’P with drugs’);
xticks ([30 60 90 120 150 180 ])
%yticks ([0 2 4 6 8 10 12])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘
(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("P")Hello, this is my code for a diseases and I want to know the effect of drugs (blue line) if I stoped from days 30-60 and continue with microglia from days 60-180. It’s use break code or anything else?
clc;clear;
%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;
%input for time
t(1)=0;
dt=0.01; %time interval
t=0:dt:180; %time span
%component for microglia
Mg = 0.047;
lambdaMf = 5*10^-2;
Fo = 3.36*10^-11;
KFo = 2.58*10^-11;
lambdaMa = 2.23*10^-2;
Ao = 0.14;
KAo = 10^-7;
beta = 10;
epsilon1 = 0.3333;
epsilon2 = 0.8;
lambdaM1Tb = 6*10^-3;
Tb=10^-6;
KTb = 2.5*10^-7;
makro1 = 0.02;
makro2 = 0.02;
dM1= 0.015;
dM2= 0.015;
tmakro1 = (Mg*(lambdaMf*(Fo/(Fo+KFo))+lambdaMa*(Ao/(Ao+KAo)))*(epsilon1*beta/beta*(epsilon1+epsilon2)))-(lambdaM1Tb*(Tb/(Tb+KTb)*makro1))-(dM1*makro1);
tmakro2 = (Mg*(lambdaMf*(Fo/(Fo+KFo))+lambdaMa*(Ao/(Ao+KAo)))*(epsilon2/beta*(epsilon1+epsilon2)))+(lambdaM1Tb*(Tb/(Tb+KTb))*makro1)-(dM2*makro2);
%component drugs
Abi = 10^-6;
lambdaN = 8*10^-4;
lambdaA = 8*10^-4;
daboM = 2*10^-3;
dabom = 10^-2; %clearance rate by macrophages
makrofag1 = 0;
makrofag2 = 0;
mikro1 = 0.02;
mikro2 = 0.02;
teta = 0.9;
h = 10;
Kaob = 7*10^-3;
AoB = 10^-8;
dtdab = Abi*(dt*(0.14*1.9*10^-4*exp(-1.9*10^-4)))+ (lambdaN*1)+(lambdaA*1)-(dabom*(makrofag1+(teta*makrofag2))+daboM*(mikro1+(teta*mikro2))*(1+h))*(AoB/(AoB+Kaob));
%initial condition with microglia
M1(1)=10;
M2(1)=0;
M3(1)=0;
M4(1)=0;
M5(1)=0;
M6(1)=0;
O(1)=0;
P(1)=0;
%initial condition without drugs
M12(1)=10;
M22(1)=0;
M32(1)=0;
M42(1)=0;
M52(1)=0;
M62(1)=0;
O2(1)=0;
P2(1)=0;
%initial condition with drugs
M14(1)=10;
M24(1)=0;
M34(1)=0;
M44(1)=0;
M54(1)=0;
M64(1)=0;
O4(1)=0;
P4(1)=0;
%empty array with microglia
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); %empty array for O
P=zeros(length(t)+1,1); %empty array for P
sumter=K2*M2+K3*M3+K4*M4+K5*M5;
%empty array without drugs
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); %empty array for O
P2=zeros(length(t)+1,1); %empty array for P
sumter2=K2*M22+K3*M32+K4*M42+K5*M52;
%empty array with drugs depend time
M14=zeros(length(t)+1,1); %empty array for M1
M24=zeros(length(t)+1,1); %empty array for M2
M34=zeros(length(t)+1,1); %empty array for M3
M44=zeros(length(t)+1,1); %empty array for M4
M54=zeros(length(t)+1,1); %empty array for M5
M64=zeros(length(t)+1,1); %empty array for M6
O4=zeros(length(t)+1,1); %empty array for O
P4=zeros(length(t)+1,1); %empty array for P
sumter2=K2*M24+K4*M34+K4*M44+K5*M54;
for j = 1:length(t)
%with microglia
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))-tmakro1-tmakro2);
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)));
%without drugs
T(j+1)=T(j)+dt;
M12(j+1) = M12(j)+1./(1+exp(-T(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)*sumter2(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)));
%with drugs depend by time
T(j+1)=T(j)+dt;
M14(j+1) = M14(j)+1./(1+exp(-T(j)));
M14(j+1) = M14(j)+(dt*(delta*M14(j+1)*(1-(M14(j+1)/gamma))-2*K1*M14(j+1)*M14(j+1)-M14(j+1)*sumter2(j+1))-((Oa-n)*K6*M14(j+1)*M64(j+1))-((Pa-Oa)*Ko*M14(j+1)*O4(j+1))-(mu_1*M14(j+1)));
M24(j+1) = M24(j)+(dt*(K1*M14(j)*M14(j)-K2*M14(j)*M24(j))-(mu_2*M24(j+1))-tmakro1-tmakro2-dtdab);
M34(j+1) = M34(j)+(dt*(K2*M14(j)*M24(j)-K3*M14(j)*M34(j))-mu_3*M34(j));
M44(j+1) = M44(j)+(dt*(K3*M14(j)*M34(j)-K4*M14(j)*M44(j))-mu_4*M44(j));
M54(j+1) = M54(j)+(dt*(K4*M14(j)*M44(j)-K5*M14(j)*M54(j))-mu_5*M54(j));
M64(j+1) = M64(j)+(dt*(K5*M14(j)*M54(j)-K6*M14(j)*M64(j))-mu_6*M64(j));
O4(j+1) = O4(j)+(dt*(K6*M14(j)*M64(j)-Ko*M14(j)*O4(j)-mu_o*O4(j)));
P4(j+1) = P4(j)+(dt*(Ko*M14(j)*O4(j)-mu_p*P4(j)));
end
subplot (2,2,1)
plot( T,M12,’r’,T,M1,’k’,T,M14,’b’,’Linewidth’,4)
legend (‘M1 without drugs’,’M1 with microglia’, ‘M1 with drugs’);
%xticks ([60 120 180 240 300 360 420 480 540 600 660 720 780 840 900 960 1020 1080])
xticks ([30 60 90 120 150 180 ])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M1’)
subplot (2,2,2)
plot(T,M22,’r’,T,M2,’k’,T,M24,’b’,’Linewidth’,4)
legend (‘M2 without drugs’,’M2 with microglia’,’M2 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([ 0 2 4 6 8 10 12 14 16])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M2’)
subplot (2,2,3)
plot(T,M32,’r’,T,M3,’k’,T,M34,’b’,’Linewidth’,4)
legend (‘M3 without drugs’,’M3 with microglia’,’M3 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.5 1 1.5 2 2.5 3 3.5])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M3’)
subplot (2,2,4)
plot(T,M42,’r’,T,M4,’k’,T,M44,’b’,’Linewidth’,4)
legend (‘M4 without drugs’,’M4 with microglia’, ‘M4 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.1 0.2 0.3 0.4 0.5])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M4’)
subplot (2,2,1)
plot(T,M52,’r’,T,M5,’k’,T,M54,’b’,’Linewidth’,4)
legend (‘M5 without drugs’,’M5 with microglia’, ‘M5 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.05 0.1 0.15 0.2])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("M5")
subplot (2,2,2)
plot(T,M62,’r’,T,M6,’k’,T,M64,’b’,’Linewidth’,4)
legend (‘M6 without drugs’,’M6 with microglia’,’M6 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.01 0.02 0.03 0.04 ])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("M6")
subplot (2,2,3)
plot(T,O2,’r’,T,O,’k’,T,O4,’b’,’Linewidth’,4)
legend (‘O without drugs’,’O with microglia’, ‘O with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.005 0.01 0.015 0.02])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("O")
subplot(2,2,4)
plot(T,P2,’r’,T,P,’k’,T,P4,’b’,’Linewidth’,4)
legend (‘P without drugs’,’P microglia’,’P with drugs’);
xticks ([30 60 90 120 150 180 ])
%yticks ([0 2 4 6 8 10 12])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘
(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("P") Hello, this is my code for a diseases and I want to know the effect of drugs (blue line) if I stoped from days 30-60 and continue with microglia from days 60-180. It’s use break code or anything else?
clc;clear;
%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;
%input for time
t(1)=0;
dt=0.01; %time interval
t=0:dt:180; %time span
%component for microglia
Mg = 0.047;
lambdaMf = 5*10^-2;
Fo = 3.36*10^-11;
KFo = 2.58*10^-11;
lambdaMa = 2.23*10^-2;
Ao = 0.14;
KAo = 10^-7;
beta = 10;
epsilon1 = 0.3333;
epsilon2 = 0.8;
lambdaM1Tb = 6*10^-3;
Tb=10^-6;
KTb = 2.5*10^-7;
makro1 = 0.02;
makro2 = 0.02;
dM1= 0.015;
dM2= 0.015;
tmakro1 = (Mg*(lambdaMf*(Fo/(Fo+KFo))+lambdaMa*(Ao/(Ao+KAo)))*(epsilon1*beta/beta*(epsilon1+epsilon2)))-(lambdaM1Tb*(Tb/(Tb+KTb)*makro1))-(dM1*makro1);
tmakro2 = (Mg*(lambdaMf*(Fo/(Fo+KFo))+lambdaMa*(Ao/(Ao+KAo)))*(epsilon2/beta*(epsilon1+epsilon2)))+(lambdaM1Tb*(Tb/(Tb+KTb))*makro1)-(dM2*makro2);
%component drugs
Abi = 10^-6;
lambdaN = 8*10^-4;
lambdaA = 8*10^-4;
daboM = 2*10^-3;
dabom = 10^-2; %clearance rate by macrophages
makrofag1 = 0;
makrofag2 = 0;
mikro1 = 0.02;
mikro2 = 0.02;
teta = 0.9;
h = 10;
Kaob = 7*10^-3;
AoB = 10^-8;
dtdab = Abi*(dt*(0.14*1.9*10^-4*exp(-1.9*10^-4)))+ (lambdaN*1)+(lambdaA*1)-(dabom*(makrofag1+(teta*makrofag2))+daboM*(mikro1+(teta*mikro2))*(1+h))*(AoB/(AoB+Kaob));
%initial condition with microglia
M1(1)=10;
M2(1)=0;
M3(1)=0;
M4(1)=0;
M5(1)=0;
M6(1)=0;
O(1)=0;
P(1)=0;
%initial condition without drugs
M12(1)=10;
M22(1)=0;
M32(1)=0;
M42(1)=0;
M52(1)=0;
M62(1)=0;
O2(1)=0;
P2(1)=0;
%initial condition with drugs
M14(1)=10;
M24(1)=0;
M34(1)=0;
M44(1)=0;
M54(1)=0;
M64(1)=0;
O4(1)=0;
P4(1)=0;
%empty array with microglia
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); %empty array for O
P=zeros(length(t)+1,1); %empty array for P
sumter=K2*M2+K3*M3+K4*M4+K5*M5;
%empty array without drugs
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); %empty array for O
P2=zeros(length(t)+1,1); %empty array for P
sumter2=K2*M22+K3*M32+K4*M42+K5*M52;
%empty array with drugs depend time
M14=zeros(length(t)+1,1); %empty array for M1
M24=zeros(length(t)+1,1); %empty array for M2
M34=zeros(length(t)+1,1); %empty array for M3
M44=zeros(length(t)+1,1); %empty array for M4
M54=zeros(length(t)+1,1); %empty array for M5
M64=zeros(length(t)+1,1); %empty array for M6
O4=zeros(length(t)+1,1); %empty array for O
P4=zeros(length(t)+1,1); %empty array for P
sumter2=K2*M24+K4*M34+K4*M44+K5*M54;
for j = 1:length(t)
%with microglia
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))-tmakro1-tmakro2);
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)));
%without drugs
T(j+1)=T(j)+dt;
M12(j+1) = M12(j)+1./(1+exp(-T(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)*sumter2(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)));
%with drugs depend by time
T(j+1)=T(j)+dt;
M14(j+1) = M14(j)+1./(1+exp(-T(j)));
M14(j+1) = M14(j)+(dt*(delta*M14(j+1)*(1-(M14(j+1)/gamma))-2*K1*M14(j+1)*M14(j+1)-M14(j+1)*sumter2(j+1))-((Oa-n)*K6*M14(j+1)*M64(j+1))-((Pa-Oa)*Ko*M14(j+1)*O4(j+1))-(mu_1*M14(j+1)));
M24(j+1) = M24(j)+(dt*(K1*M14(j)*M14(j)-K2*M14(j)*M24(j))-(mu_2*M24(j+1))-tmakro1-tmakro2-dtdab);
M34(j+1) = M34(j)+(dt*(K2*M14(j)*M24(j)-K3*M14(j)*M34(j))-mu_3*M34(j));
M44(j+1) = M44(j)+(dt*(K3*M14(j)*M34(j)-K4*M14(j)*M44(j))-mu_4*M44(j));
M54(j+1) = M54(j)+(dt*(K4*M14(j)*M44(j)-K5*M14(j)*M54(j))-mu_5*M54(j));
M64(j+1) = M64(j)+(dt*(K5*M14(j)*M54(j)-K6*M14(j)*M64(j))-mu_6*M64(j));
O4(j+1) = O4(j)+(dt*(K6*M14(j)*M64(j)-Ko*M14(j)*O4(j)-mu_o*O4(j)));
P4(j+1) = P4(j)+(dt*(Ko*M14(j)*O4(j)-mu_p*P4(j)));
end
subplot (2,2,1)
plot( T,M12,’r’,T,M1,’k’,T,M14,’b’,’Linewidth’,4)
legend (‘M1 without drugs’,’M1 with microglia’, ‘M1 with drugs’);
%xticks ([60 120 180 240 300 360 420 480 540 600 660 720 780 840 900 960 1020 1080])
xticks ([30 60 90 120 150 180 ])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M1’)
subplot (2,2,2)
plot(T,M22,’r’,T,M2,’k’,T,M24,’b’,’Linewidth’,4)
legend (‘M2 without drugs’,’M2 with microglia’,’M2 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([ 0 2 4 6 8 10 12 14 16])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M2’)
subplot (2,2,3)
plot(T,M32,’r’,T,M3,’k’,T,M34,’b’,’Linewidth’,4)
legend (‘M3 without drugs’,’M3 with microglia’,’M3 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.5 1 1.5 2 2.5 3 3.5])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M3’)
subplot (2,2,4)
plot(T,M42,’r’,T,M4,’k’,T,M44,’b’,’Linewidth’,4)
legend (‘M4 without drugs’,’M4 with microglia’, ‘M4 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.1 0.2 0.3 0.4 0.5])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title (‘M4’)
subplot (2,2,1)
plot(T,M52,’r’,T,M5,’k’,T,M54,’b’,’Linewidth’,4)
legend (‘M5 without drugs’,’M5 with microglia’, ‘M5 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.05 0.1 0.15 0.2])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("M5")
subplot (2,2,2)
plot(T,M62,’r’,T,M6,’k’,T,M64,’b’,’Linewidth’,4)
legend (‘M6 without drugs’,’M6 with microglia’,’M6 with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.01 0.02 0.03 0.04 ])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("M6")
subplot (2,2,3)
plot(T,O2,’r’,T,O,’k’,T,O4,’b’,’Linewidth’,4)
legend (‘O without drugs’,’O with microglia’, ‘O with drugs’);
xticks ([30 60 90 120 150 180 ])
yticks ([0 0.005 0.01 0.015 0.02])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("O")
subplot(2,2,4)
plot(T,P2,’r’,T,P,’k’,T,P4,’b’,’Linewidth’,4)
legend (‘P without drugs’,’P microglia’,’P with drugs’);
xticks ([30 60 90 120 150 180 ])
%yticks ([0 2 4 6 8 10 12])
xlabel(‘days’,’Fontsize’,14,’FontWeight’,’bold’)
ylabel(‘
(g/mL)’,’Fontsize’,14,’FontWeight’,’bold’)
title ("P") matlab, euler, drugs MATLAB Answers — New Questions
Add individual legends to plots in a tiledlayout
Hi,
I would like to create a tiled layout with both a tile-specific and a common legend.
The tile-specific legend should contain a reference to the data contained only on the tile, whereas the common legend should refer to data across all tiles.
Here is a simple code to illustrate what I’m trying to do. The tile legends should refer to the yline and the common legend at the bottom should refer to data in all plots. Hopefully this makes sense.
Can anybody help?
Thank you
x = linspace(0,30);
y1 = sin(x);
y2 = sin(x);
figure
tiledlayout(1,2)
ax1 = nexttile(1);
plot(x,y1)
yline(0,’–‘)
legend(ax1, ”, ‘y=0’)
ax2 = nexttile(2);
plot(x,y2)
yline(0.5,’–‘)
legend(ax2, ”, ‘y=0.5’)
leg = legend(‘sin(x)’);
leg.Layout.Tile = ‘south’;Hi,
I would like to create a tiled layout with both a tile-specific and a common legend.
The tile-specific legend should contain a reference to the data contained only on the tile, whereas the common legend should refer to data across all tiles.
Here is a simple code to illustrate what I’m trying to do. The tile legends should refer to the yline and the common legend at the bottom should refer to data in all plots. Hopefully this makes sense.
Can anybody help?
Thank you
x = linspace(0,30);
y1 = sin(x);
y2 = sin(x);
figure
tiledlayout(1,2)
ax1 = nexttile(1);
plot(x,y1)
yline(0,’–‘)
legend(ax1, ”, ‘y=0’)
ax2 = nexttile(2);
plot(x,y2)
yline(0.5,’–‘)
legend(ax2, ”, ‘y=0.5’)
leg = legend(‘sin(x)’);
leg.Layout.Tile = ‘south’; Hi,
I would like to create a tiled layout with both a tile-specific and a common legend.
The tile-specific legend should contain a reference to the data contained only on the tile, whereas the common legend should refer to data across all tiles.
Here is a simple code to illustrate what I’m trying to do. The tile legends should refer to the yline and the common legend at the bottom should refer to data in all plots. Hopefully this makes sense.
Can anybody help?
Thank you
x = linspace(0,30);
y1 = sin(x);
y2 = sin(x);
figure
tiledlayout(1,2)
ax1 = nexttile(1);
plot(x,y1)
yline(0,’–‘)
legend(ax1, ”, ‘y=0’)
ax2 = nexttile(2);
plot(x,y2)
yline(0.5,’–‘)
legend(ax2, ”, ‘y=0.5’)
leg = legend(‘sin(x)’);
leg.Layout.Tile = ‘south’; tiled layout MATLAB Answers — New Questions
Is it possible to quantize a projected NN?
I have trained a LSTM Model to filter some signals (approximately following this example: https://it.mathworks.com/help/signal/ug/denoise-eeg-signals-using-differentiable-signal-processing-layers.html). Then, since the aim is to implement the NN in an hardware, I reduced the number of learnables using the Projection method of compression. This gives me the possibility to reduce the learnables from 4.3k to 1.5k. Then, I improved the accuracy of the model fine-tuning the projected LSTM. Finally, I would like to quantize the model on 8 bits. When I use the quantize function in MATLAB I have the following error: "The class deep.internal.quantization.config.ConfigType has no Constant property or Static method named ‘InputProjector’."
Is it possible to quantize a projected NN?
Fairly new in this area, be kind :)I have trained a LSTM Model to filter some signals (approximately following this example: https://it.mathworks.com/help/signal/ug/denoise-eeg-signals-using-differentiable-signal-processing-layers.html). Then, since the aim is to implement the NN in an hardware, I reduced the number of learnables using the Projection method of compression. This gives me the possibility to reduce the learnables from 4.3k to 1.5k. Then, I improved the accuracy of the model fine-tuning the projected LSTM. Finally, I would like to quantize the model on 8 bits. When I use the quantize function in MATLAB I have the following error: "The class deep.internal.quantization.config.ConfigType has no Constant property or Static method named ‘InputProjector’."
Is it possible to quantize a projected NN?
Fairly new in this area, be kind 🙂 I have trained a LSTM Model to filter some signals (approximately following this example: https://it.mathworks.com/help/signal/ug/denoise-eeg-signals-using-differentiable-signal-processing-layers.html). Then, since the aim is to implement the NN in an hardware, I reduced the number of learnables using the Projection method of compression. This gives me the possibility to reduce the learnables from 4.3k to 1.5k. Then, I improved the accuracy of the model fine-tuning the projected LSTM. Finally, I would like to quantize the model on 8 bits. When I use the quantize function in MATLAB I have the following error: "The class deep.internal.quantization.config.ConfigType has no Constant property or Static method named ‘InputProjector’."
Is it possible to quantize a projected NN?
Fairly new in this area, be kind 🙂 lstm, quantizing networks, projection, neural networks, quantization, compression techniques MATLAB Answers — New Questions
Which characters are replaced by matlab.lang.makeValidName?
Function matlab.lang.makeValidName does 2 things:
first, it checks the input string for special characters which are not allowed to be contained in identifiers and replaces those (e.g. with "")
second, it checks the length of the input string with possibly replaced characters, and if is too long, it truncates the string.
However, I would like the function to check only for special characters, not for length.
One option would be to use "strrep", but then I would like to generate the list of characters which are replaced by matlab.lang.makeValidName to be consistent with makeValidName.Function matlab.lang.makeValidName does 2 things:
first, it checks the input string for special characters which are not allowed to be contained in identifiers and replaces those (e.g. with "")
second, it checks the length of the input string with possibly replaced characters, and if is too long, it truncates the string.
However, I would like the function to check only for special characters, not for length.
One option would be to use "strrep", but then I would like to generate the list of characters which are replaced by matlab.lang.makeValidName to be consistent with makeValidName. Function matlab.lang.makeValidName does 2 things:
first, it checks the input string for special characters which are not allowed to be contained in identifiers and replaces those (e.g. with "")
second, it checks the length of the input string with possibly replaced characters, and if is too long, it truncates the string.
However, I would like the function to check only for special characters, not for length.
One option would be to use "strrep", but then I would like to generate the list of characters which are replaced by matlab.lang.makeValidName to be consistent with makeValidName. matlab.lang.makevalidname MATLAB Answers — New Questions
Simulation slowed down by universal bridge diode rectifier
I’m doing a simulation in Matlab Simulink using Simscape Electrical Specialized power systems. The aim of my simulation is to model a synchronous machine with brushless excitation. The brushless excitation requires a rotating rectifier bridge, modelized in my simulation using the block "universal bridge". The addition of this block considerably slows down my simulation (i need 3 of them in my system), to the point that 5s of simulation can take hours.
I also created my block of the diode bridge rectifier using diodes from specialized power systems but i have the same problem.
The solver I’m using is ode23tb with a max step size 1e-3, relative tolerance 1e-3 ( in order to have correct waveforms I should use at least 1e-4, 1e-4 but it would make the simulation slower). I already tried accelerator and rapid accelerator without any improvements.
Does anyone have any syuggestion on how to resolve this simulation speed problem?I’m doing a simulation in Matlab Simulink using Simscape Electrical Specialized power systems. The aim of my simulation is to model a synchronous machine with brushless excitation. The brushless excitation requires a rotating rectifier bridge, modelized in my simulation using the block "universal bridge". The addition of this block considerably slows down my simulation (i need 3 of them in my system), to the point that 5s of simulation can take hours.
I also created my block of the diode bridge rectifier using diodes from specialized power systems but i have the same problem.
The solver I’m using is ode23tb with a max step size 1e-3, relative tolerance 1e-3 ( in order to have correct waveforms I should use at least 1e-4, 1e-4 but it would make the simulation slower). I already tried accelerator and rapid accelerator without any improvements.
Does anyone have any syuggestion on how to resolve this simulation speed problem? I’m doing a simulation in Matlab Simulink using Simscape Electrical Specialized power systems. The aim of my simulation is to model a synchronous machine with brushless excitation. The brushless excitation requires a rotating rectifier bridge, modelized in my simulation using the block "universal bridge". The addition of this block considerably slows down my simulation (i need 3 of them in my system), to the point that 5s of simulation can take hours.
I also created my block of the diode bridge rectifier using diodes from specialized power systems but i have the same problem.
The solver I’m using is ode23tb with a max step size 1e-3, relative tolerance 1e-3 ( in order to have correct waveforms I should use at least 1e-4, 1e-4 but it would make the simulation slower). I already tried accelerator and rapid accelerator without any improvements.
Does anyone have any syuggestion on how to resolve this simulation speed problem? rectifiers, simulation speed, slow simulation, rotating rectifier, electrical machine MATLAB Answers — New Questions
equivalent of BytesAvailable in serialport?
Hi, I am trying to migrate from `serial` to serialport interface, and having a hard time accessing BytesAvailable in `serialport`. While using serial, I could access the input buffer and get all bytes using `serial.BytesAvailable` which by default is 512. So with `fread` I get a matrix of 512 *1. However, when using `serialport` interface, NumBytesAvailable does not give me the same info.
Could anyone help me please? Thanks!Hi, I am trying to migrate from `serial` to serialport interface, and having a hard time accessing BytesAvailable in `serialport`. While using serial, I could access the input buffer and get all bytes using `serial.BytesAvailable` which by default is 512. So with `fread` I get a matrix of 512 *1. However, when using `serialport` interface, NumBytesAvailable does not give me the same info.
Could anyone help me please? Thanks! Hi, I am trying to migrate from `serial` to serialport interface, and having a hard time accessing BytesAvailable in `serialport`. While using serial, I could access the input buffer and get all bytes using `serial.BytesAvailable` which by default is 512. So with `fread` I get a matrix of 512 *1. However, when using `serialport` interface, NumBytesAvailable does not give me the same info.
Could anyone help me please? Thanks! serial, serialport, bytesavailable MATLAB Answers — New Questions
Plotting a graph of the distance between the centroid of an irregular shaped particle and its contour (radius) versus angle (equal intervals of theta from zero to 360 degrees)
I am trying to plot a graph between the radius of an irregular shaped particle (from the centroid to a point on the contour) at equal intervals of theta around the particle (from zero to 360 degrees).
My code (I actually got most of it from here) is not giving me what I want. I would like the graph to look like that of a typical signal but with angles (0 to 360 degrees) on the x-axis and radius on the y-axis.
I would really appreciate if someone could help me get this graph so that I can proceed with further operations using the fast fourier transform algorithm
Thanks!
%Image Threshholding
clc; clearvars; clear all;
img = imread(‘1_50.jpg’); %Read image
BW = im2bw(img,0.45); %binarize image with a threshold value of 0.45
img2= bwareaopen (BW, 1000); %Remove small objects
img2= imfill(BW, ‘holes’); %fill holes
centriod_value= regionprops(img2, ‘Centroid’); %Finds centroid of image
centroid = centriod_value.Centroid; %Returns centroid in [row, column]
%Display the binary image with the centroid locations superimposed
subplot(1,3,1)
imshow(img2);
hold on
plot(centroid(:,1),centroid(:,2),’b.’)
hold on
%tracing the boundary of image
p_boundary= bwboundaries(img2); % in row, column order, not x,y
number_of_boundaries = size(p_boundary,1); %one boundary
for k = 1 : length(p_boundary);
thisBoundary = p_boundary{k};
y = thisBoundary(:,2);
x = thisBoundary(:,1);
subplot(1,3,2)
plot(x, y, ‘g’, ‘LineWidth’, 2);
hold on
plot(centroid(:,1),centroid(:,2),’b.’)
hold on
end
hold on
% Calculate the angles in degrees
deltaY = thisBoundary(:,1) – centroid(1);
deltaX = thisBoundary(:,2) – centroid(2);
angles = atand(deltaY ./ deltaX);
% Calculate the distances.
distances = sqrt((thisBoundary(:,1) – centroid(1)).^2 + (thisBoundary(:,2) – centroid(2)).^2);
% Plot distance vs. angle.
angle=0:360/128:360;
for i=1:length(p_boundary);
angles(i)+360/128;
subplot(1,3,3)
plot(angles,distances)
endI am trying to plot a graph between the radius of an irregular shaped particle (from the centroid to a point on the contour) at equal intervals of theta around the particle (from zero to 360 degrees).
My code (I actually got most of it from here) is not giving me what I want. I would like the graph to look like that of a typical signal but with angles (0 to 360 degrees) on the x-axis and radius on the y-axis.
I would really appreciate if someone could help me get this graph so that I can proceed with further operations using the fast fourier transform algorithm
Thanks!
%Image Threshholding
clc; clearvars; clear all;
img = imread(‘1_50.jpg’); %Read image
BW = im2bw(img,0.45); %binarize image with a threshold value of 0.45
img2= bwareaopen (BW, 1000); %Remove small objects
img2= imfill(BW, ‘holes’); %fill holes
centriod_value= regionprops(img2, ‘Centroid’); %Finds centroid of image
centroid = centriod_value.Centroid; %Returns centroid in [row, column]
%Display the binary image with the centroid locations superimposed
subplot(1,3,1)
imshow(img2);
hold on
plot(centroid(:,1),centroid(:,2),’b.’)
hold on
%tracing the boundary of image
p_boundary= bwboundaries(img2); % in row, column order, not x,y
number_of_boundaries = size(p_boundary,1); %one boundary
for k = 1 : length(p_boundary);
thisBoundary = p_boundary{k};
y = thisBoundary(:,2);
x = thisBoundary(:,1);
subplot(1,3,2)
plot(x, y, ‘g’, ‘LineWidth’, 2);
hold on
plot(centroid(:,1),centroid(:,2),’b.’)
hold on
end
hold on
% Calculate the angles in degrees
deltaY = thisBoundary(:,1) – centroid(1);
deltaX = thisBoundary(:,2) – centroid(2);
angles = atand(deltaY ./ deltaX);
% Calculate the distances.
distances = sqrt((thisBoundary(:,1) – centroid(1)).^2 + (thisBoundary(:,2) – centroid(2)).^2);
% Plot distance vs. angle.
angle=0:360/128:360;
for i=1:length(p_boundary);
angles(i)+360/128;
subplot(1,3,3)
plot(angles,distances)
end I am trying to plot a graph between the radius of an irregular shaped particle (from the centroid to a point on the contour) at equal intervals of theta around the particle (from zero to 360 degrees).
My code (I actually got most of it from here) is not giving me what I want. I would like the graph to look like that of a typical signal but with angles (0 to 360 degrees) on the x-axis and radius on the y-axis.
I would really appreciate if someone could help me get this graph so that I can proceed with further operations using the fast fourier transform algorithm
Thanks!
%Image Threshholding
clc; clearvars; clear all;
img = imread(‘1_50.jpg’); %Read image
BW = im2bw(img,0.45); %binarize image with a threshold value of 0.45
img2= bwareaopen (BW, 1000); %Remove small objects
img2= imfill(BW, ‘holes’); %fill holes
centriod_value= regionprops(img2, ‘Centroid’); %Finds centroid of image
centroid = centriod_value.Centroid; %Returns centroid in [row, column]
%Display the binary image with the centroid locations superimposed
subplot(1,3,1)
imshow(img2);
hold on
plot(centroid(:,1),centroid(:,2),’b.’)
hold on
%tracing the boundary of image
p_boundary= bwboundaries(img2); % in row, column order, not x,y
number_of_boundaries = size(p_boundary,1); %one boundary
for k = 1 : length(p_boundary);
thisBoundary = p_boundary{k};
y = thisBoundary(:,2);
x = thisBoundary(:,1);
subplot(1,3,2)
plot(x, y, ‘g’, ‘LineWidth’, 2);
hold on
plot(centroid(:,1),centroid(:,2),’b.’)
hold on
end
hold on
% Calculate the angles in degrees
deltaY = thisBoundary(:,1) – centroid(1);
deltaX = thisBoundary(:,2) – centroid(2);
angles = atand(deltaY ./ deltaX);
% Calculate the distances.
distances = sqrt((thisBoundary(:,1) – centroid(1)).^2 + (thisBoundary(:,2) – centroid(2)).^2);
% Plot distance vs. angle.
angle=0:360/128:360;
for i=1:length(p_boundary);
angles(i)+360/128;
subplot(1,3,3)
plot(angles,distances)
end contour MATLAB Answers — New Questions
kfoldLoss() values have inconsistent precision between different iterations of a loop
I am training an RBF SVM with leave-one-out cross-validation using 94 observations and I am surpised to find that the precision of the result of kfoldLoss() isn’t consistent when comparing models that have the same loss (or accuracy). For example, an accuracy of 76/94 does not always produce exactly the same value, with a variation of around 1e-15. The error is completely negligible except for comparing values or searching for the maximum, etc. The only thing that should be different is which 76 of the 94 folds are correct, but this should have no effect on the value or precision of the result.
I’m using a parfor loop to test many combinations of features (e.g. 260K combinations) and measuring the accuracy using accuracy = 1 – kfoldLoss(Mdl). I then use max() to find the position of the result with the highest accuracy; however, sometimes this does not work because there can be tiny variations in the precision. How is this even possible?
With 94 observations, there are only 94 possible accuracy levels. In my latest test, the peak accuracy is 76 out of 94, which is 0.808510638297872…etc.
Eight of the models tested have this 76 / 94 accuracy but it isn’t stored with the same precision in the same double-precision vector. Precision errors are inevitable, but I would have expected MATLAB to always return the same result for 76 / 94.
I’m using a parfor loop. Could this have something to do with it? Is it possible for one thread to somehow produce a different precision from others? It’s an Intel i7-7700 running MATLAB 2024a on Windows 10 .
% Abbreviated code. "combinations" is a cell array with each cell
% containing a vector of the features to select from the training data
accuracy = [];
parfor i = 1:length(combinations)
td_sel = training_data(:, cell2mat(combinations(i)));
Mdl = fitcsvm(td_sel, response_name, ‘KernelFunction’, ‘RBF’, ‘KFold’, 94, ‘CacheSize’, ‘maximal’)
accuracy(i) = 1 – kfoldLoss(Mdl);
end
[max_val, max_pos] = max(accuracies)
max_val =
0.808510638297872
max_pos =
52793
% Find all values that are very close to this value. But I don’t understand
% how the precision (in the storage of the value) can be different
a = find(abs(accuracies – max_val) < 1e-10)
accuracies(a)
a =
6829
6891
6989
13699
21936
22778
45270
52793
ans =
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
accuracies(a) – max_val
ans =
1.0e-15 *
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
0
accuracies(a) – 76/94
ans =
1.0e-15 *
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
0
Thanks.I am training an RBF SVM with leave-one-out cross-validation using 94 observations and I am surpised to find that the precision of the result of kfoldLoss() isn’t consistent when comparing models that have the same loss (or accuracy). For example, an accuracy of 76/94 does not always produce exactly the same value, with a variation of around 1e-15. The error is completely negligible except for comparing values or searching for the maximum, etc. The only thing that should be different is which 76 of the 94 folds are correct, but this should have no effect on the value or precision of the result.
I’m using a parfor loop to test many combinations of features (e.g. 260K combinations) and measuring the accuracy using accuracy = 1 – kfoldLoss(Mdl). I then use max() to find the position of the result with the highest accuracy; however, sometimes this does not work because there can be tiny variations in the precision. How is this even possible?
With 94 observations, there are only 94 possible accuracy levels. In my latest test, the peak accuracy is 76 out of 94, which is 0.808510638297872…etc.
Eight of the models tested have this 76 / 94 accuracy but it isn’t stored with the same precision in the same double-precision vector. Precision errors are inevitable, but I would have expected MATLAB to always return the same result for 76 / 94.
I’m using a parfor loop. Could this have something to do with it? Is it possible for one thread to somehow produce a different precision from others? It’s an Intel i7-7700 running MATLAB 2024a on Windows 10 .
% Abbreviated code. "combinations" is a cell array with each cell
% containing a vector of the features to select from the training data
accuracy = [];
parfor i = 1:length(combinations)
td_sel = training_data(:, cell2mat(combinations(i)));
Mdl = fitcsvm(td_sel, response_name, ‘KernelFunction’, ‘RBF’, ‘KFold’, 94, ‘CacheSize’, ‘maximal’)
accuracy(i) = 1 – kfoldLoss(Mdl);
end
[max_val, max_pos] = max(accuracies)
max_val =
0.808510638297872
max_pos =
52793
% Find all values that are very close to this value. But I don’t understand
% how the precision (in the storage of the value) can be different
a = find(abs(accuracies – max_val) < 1e-10)
accuracies(a)
a =
6829
6891
6989
13699
21936
22778
45270
52793
ans =
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
accuracies(a) – max_val
ans =
1.0e-15 *
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
0
accuracies(a) – 76/94
ans =
1.0e-15 *
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
0
Thanks. I am training an RBF SVM with leave-one-out cross-validation using 94 observations and I am surpised to find that the precision of the result of kfoldLoss() isn’t consistent when comparing models that have the same loss (or accuracy). For example, an accuracy of 76/94 does not always produce exactly the same value, with a variation of around 1e-15. The error is completely negligible except for comparing values or searching for the maximum, etc. The only thing that should be different is which 76 of the 94 folds are correct, but this should have no effect on the value or precision of the result.
I’m using a parfor loop to test many combinations of features (e.g. 260K combinations) and measuring the accuracy using accuracy = 1 – kfoldLoss(Mdl). I then use max() to find the position of the result with the highest accuracy; however, sometimes this does not work because there can be tiny variations in the precision. How is this even possible?
With 94 observations, there are only 94 possible accuracy levels. In my latest test, the peak accuracy is 76 out of 94, which is 0.808510638297872…etc.
Eight of the models tested have this 76 / 94 accuracy but it isn’t stored with the same precision in the same double-precision vector. Precision errors are inevitable, but I would have expected MATLAB to always return the same result for 76 / 94.
I’m using a parfor loop. Could this have something to do with it? Is it possible for one thread to somehow produce a different precision from others? It’s an Intel i7-7700 running MATLAB 2024a on Windows 10 .
% Abbreviated code. "combinations" is a cell array with each cell
% containing a vector of the features to select from the training data
accuracy = [];
parfor i = 1:length(combinations)
td_sel = training_data(:, cell2mat(combinations(i)));
Mdl = fitcsvm(td_sel, response_name, ‘KernelFunction’, ‘RBF’, ‘KFold’, 94, ‘CacheSize’, ‘maximal’)
accuracy(i) = 1 – kfoldLoss(Mdl);
end
[max_val, max_pos] = max(accuracies)
max_val =
0.808510638297872
max_pos =
52793
% Find all values that are very close to this value. But I don’t understand
% how the precision (in the storage of the value) can be different
a = find(abs(accuracies – max_val) < 1e-10)
accuracies(a)
a =
6829
6891
6989
13699
21936
22778
45270
52793
ans =
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
0.808510638297872
accuracies(a) – max_val
ans =
1.0e-15 *
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
0
accuracies(a) – 76/94
ans =
1.0e-15 *
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
-0.111022302462516
0
Thanks. kfoldloss, precision, parfor MATLAB Answers — New Questions
How to practice matlab programs?
Which website gives practice programs.Please help.Which website gives practice programs.Please help. Which website gives practice programs.Please help. program in matlab MATLAB Answers — New Questions
Hydrostatic pressure in PDE toolbox
Hi,
I have this rectangular box in stl file which i have imported. I did mesh it and now i want to apply varying hydrostatic pressure on the side face, how do i do that.
Thanks,
JigarHi,
I have this rectangular box in stl file which i have imported. I did mesh it and now i want to apply varying hydrostatic pressure on the side face, how do i do that.
Thanks,
Jigar Hi,
I have this rectangular box in stl file which i have imported. I did mesh it and now i want to apply varying hydrostatic pressure on the side face, how do i do that.
Thanks,
Jigar hydrostatic, pressure, pde, toolbox MATLAB Answers — New Questions
A equstion about the function CONTRAST
You wrote on the help webpage that contrast supports inputting true color images of type m-by-n-by-3, but when I input the code, the following error occurred
Can you help me deal with this problem?You wrote on the help webpage that contrast supports inputting true color images of type m-by-n-by-3, but when I input the code, the following error occurred
Can you help me deal with this problem? You wrote on the help webpage that contrast supports inputting true color images of type m-by-n-by-3, but when I input the code, the following error occurred
Can you help me deal with this problem? contrast, m-by-n-by-3, color images MATLAB Answers — New Questions
mask rcnn does not detect mask
I’m practicing mrcnn.
I entered img, box, labeling, and mask well to proceed with the training.
The trained network recognizes and distinguishes boxes and labels well.
Mask appears as the same single array as the number of boxes.
But the mask was an array that was all zeros.
In this case, the problem is that you entered the mask incorrectly?
Or this net still unable to distinguish it due to the small amount of training?
I did not allocate much time to training due to a problem with computer specifications. It is a network that did 10 epoch 900 iteration.I’m practicing mrcnn.
I entered img, box, labeling, and mask well to proceed with the training.
The trained network recognizes and distinguishes boxes and labels well.
Mask appears as the same single array as the number of boxes.
But the mask was an array that was all zeros.
In this case, the problem is that you entered the mask incorrectly?
Or this net still unable to distinguish it due to the small amount of training?
I did not allocate much time to training due to a problem with computer specifications. It is a network that did 10 epoch 900 iteration. I’m practicing mrcnn.
I entered img, box, labeling, and mask well to proceed with the training.
The trained network recognizes and distinguishes boxes and labels well.
Mask appears as the same single array as the number of boxes.
But the mask was an array that was all zeros.
In this case, the problem is that you entered the mask incorrectly?
Or this net still unable to distinguish it due to the small amount of training?
I did not allocate much time to training due to a problem with computer specifications. It is a network that did 10 epoch 900 iteration. mask rcnn, rcnn, cnn, mask, train, deep learning, machine learning MATLAB Answers — New Questions
poctave() return value for acoustics analysis
Hi all,
I need some assistance understanding the "units" of the data that is returned when calling the MATLAB function [p,cf] = poctave();
I am analysing an audio signal that has been recorded with a microphone. The data is imported into the MATLAB workspace and converted to a calibrated pressure value with units of Pascals (Pa). So the units of the data that I pass to poctave() are Pascals (Pa). The following code snippet shows how I’m using poctave().
flims = [20 Fs/2]; % set the frequency limits of my analysis
bpo = 3; % Third-Octave analysis required
opts = {‘FrequencyLimits’,flims,’BandsPerOctave’,bpo}; % prepare these options for passing to poctave()
% apply the 3rd-Octave filter-bank to my data
[p, cf] = poctave(pressureData,Fs,opts{:});
(Where "pressureData" is my audio data to be filtered, and "Fs" is the sampling frequency of the data.)
My first question is:
1) What are the units of the octave spectrum data returned unto variable ‘p’?
I need to know this for my conversion of the data into a dB value using 10*log10(p/pref).
I understand that if I use poctave() as follows:
poctave(pressureData,Fs,opts{:})
then by default it assigns "pref" a value of 1 and the results are as in the following image:
Without units though, the result seems meaningless…
My second question is:
2) what is pref in the previous equation to ensure correct dB values that correlate with a sound pressure level? do I use:
pref = 0.00002; % 20 micro Pascals reference sound pressure level
or:
pref = 0.00002^2; % 20 micro Pascals (squared); i.e. is p returned from poctave() a pressure squared value or a power value??
I want to create a resulting 3rd-Octave spectrum whos dB values match those as though it was being displayed on a Sound Level Meter. I will then correlate these values with those on our Sound Level Meter to validate the data to be processed within MATLAB.
Thanks so much for any assistance you can offer!!Hi all,
I need some assistance understanding the "units" of the data that is returned when calling the MATLAB function [p,cf] = poctave();
I am analysing an audio signal that has been recorded with a microphone. The data is imported into the MATLAB workspace and converted to a calibrated pressure value with units of Pascals (Pa). So the units of the data that I pass to poctave() are Pascals (Pa). The following code snippet shows how I’m using poctave().
flims = [20 Fs/2]; % set the frequency limits of my analysis
bpo = 3; % Third-Octave analysis required
opts = {‘FrequencyLimits’,flims,’BandsPerOctave’,bpo}; % prepare these options for passing to poctave()
% apply the 3rd-Octave filter-bank to my data
[p, cf] = poctave(pressureData,Fs,opts{:});
(Where "pressureData" is my audio data to be filtered, and "Fs" is the sampling frequency of the data.)
My first question is:
1) What are the units of the octave spectrum data returned unto variable ‘p’?
I need to know this for my conversion of the data into a dB value using 10*log10(p/pref).
I understand that if I use poctave() as follows:
poctave(pressureData,Fs,opts{:})
then by default it assigns "pref" a value of 1 and the results are as in the following image:
Without units though, the result seems meaningless…
My second question is:
2) what is pref in the previous equation to ensure correct dB values that correlate with a sound pressure level? do I use:
pref = 0.00002; % 20 micro Pascals reference sound pressure level
or:
pref = 0.00002^2; % 20 micro Pascals (squared); i.e. is p returned from poctave() a pressure squared value or a power value??
I want to create a resulting 3rd-Octave spectrum whos dB values match those as though it was being displayed on a Sound Level Meter. I will then correlate these values with those on our Sound Level Meter to validate the data to be processed within MATLAB.
Thanks so much for any assistance you can offer!! Hi all,
I need some assistance understanding the "units" of the data that is returned when calling the MATLAB function [p,cf] = poctave();
I am analysing an audio signal that has been recorded with a microphone. The data is imported into the MATLAB workspace and converted to a calibrated pressure value with units of Pascals (Pa). So the units of the data that I pass to poctave() are Pascals (Pa). The following code snippet shows how I’m using poctave().
flims = [20 Fs/2]; % set the frequency limits of my analysis
bpo = 3; % Third-Octave analysis required
opts = {‘FrequencyLimits’,flims,’BandsPerOctave’,bpo}; % prepare these options for passing to poctave()
% apply the 3rd-Octave filter-bank to my data
[p, cf] = poctave(pressureData,Fs,opts{:});
(Where "pressureData" is my audio data to be filtered, and "Fs" is the sampling frequency of the data.)
My first question is:
1) What are the units of the octave spectrum data returned unto variable ‘p’?
I need to know this for my conversion of the data into a dB value using 10*log10(p/pref).
I understand that if I use poctave() as follows:
poctave(pressureData,Fs,opts{:})
then by default it assigns "pref" a value of 1 and the results are as in the following image:
Without units though, the result seems meaningless…
My second question is:
2) what is pref in the previous equation to ensure correct dB values that correlate with a sound pressure level? do I use:
pref = 0.00002; % 20 micro Pascals reference sound pressure level
or:
pref = 0.00002^2; % 20 micro Pascals (squared); i.e. is p returned from poctave() a pressure squared value or a power value??
I want to create a resulting 3rd-Octave spectrum whos dB values match those as though it was being displayed on a Sound Level Meter. I will then correlate these values with those on our Sound Level Meter to validate the data to be processed within MATLAB.
Thanks so much for any assistance you can offer!! poctave, audio signal processing, spectrum, acoustics MATLAB Answers — New Questions
Change weather in RoadRunner Scenario
Dear Mathworks support team,
how can i change the weather and day/night settings in the RoadRunner Scenario?
Thank you for assistance
Best regards
JavidDear Mathworks support team,
how can i change the weather and day/night settings in the RoadRunner Scenario?
Thank you for assistance
Best regards
Javid Dear Mathworks support team,
how can i change the weather and day/night settings in the RoadRunner Scenario?
Thank you for assistance
Best regards
Javid roadrunner, scnario, change weather MATLAB Answers — New Questions
How to acquire data and generate signals at the same time using ni-daq on session-based interface
Hi all,
I’ve tried search how can I use input and output simultaneously using ni-daq.
But I don’t have any background knowledge about device and daq toolbox, Only can do analog input and output separately.
I have used session-based interface and my ni-daq model is usb-6356.
I want to make my system,whenever ni-daq get external trigger signal, transmit signal and acquire signal simultaneously.
Is there any function acquire data and generate signals at the same time on session based interface?
And how can I make the system do analog input and analog output whenever daq get external trigger?Hi all,
I’ve tried search how can I use input and output simultaneously using ni-daq.
But I don’t have any background knowledge about device and daq toolbox, Only can do analog input and output separately.
I have used session-based interface and my ni-daq model is usb-6356.
I want to make my system,whenever ni-daq get external trigger signal, transmit signal and acquire signal simultaneously.
Is there any function acquire data and generate signals at the same time on session based interface?
And how can I make the system do analog input and analog output whenever daq get external trigger? Hi all,
I’ve tried search how can I use input and output simultaneously using ni-daq.
But I don’t have any background knowledge about device and daq toolbox, Only can do analog input and output separately.
I have used session-based interface and my ni-daq model is usb-6356.
I want to make my system,whenever ni-daq get external trigger signal, transmit signal and acquire signal simultaneously.
Is there any function acquire data and generate signals at the same time on session based interface?
And how can I make the system do analog input and analog output whenever daq get external trigger? data acquisition, signal, functions, analog input, analog output, session-based interface, ni-daq MATLAB Answers — New Questions
First Order Ogden Stress Strain Plot
Hello,
I have the material constants mu and alpha to fit a first order ogden material model. Mu = 8000, alpha = 5.
I am trying to plot the stress strain curve. However, I would expect that the curve would intersect stress and strain at 0,0. Owing to the ogden formula, intersecting at 0,0 is not possible, which contradicts normal and expected material behaviour.
It would be great if someone could explain and help me understand where I am going wrong.
Thanks,
Tom
%%
close all;
clear all;
% Parameters
mu1 = 8000; % Shear modulus
alpha1 = 5; % Material parameter
% Strain range for compression
strain_comp = linspace(-1, 1, 1000); % From -0.5 to 0
% Stress calculation for compression
stress_comp = (mu1/alpha1) * (strain_comp.^alpha1 + strain_comp.^alpha1 + strain_comp.^alpha1 – 3);
% Plot compression
figure;
plot(strain_comp, stress_comp, ‘LineWidth’, 2);
xlabel(‘Strain (Compression)’);
ylabel(‘Stress’);
title(‘First Order Ogden Model – Compression’);
grid on;Hello,
I have the material constants mu and alpha to fit a first order ogden material model. Mu = 8000, alpha = 5.
I am trying to plot the stress strain curve. However, I would expect that the curve would intersect stress and strain at 0,0. Owing to the ogden formula, intersecting at 0,0 is not possible, which contradicts normal and expected material behaviour.
It would be great if someone could explain and help me understand where I am going wrong.
Thanks,
Tom
%%
close all;
clear all;
% Parameters
mu1 = 8000; % Shear modulus
alpha1 = 5; % Material parameter
% Strain range for compression
strain_comp = linspace(-1, 1, 1000); % From -0.5 to 0
% Stress calculation for compression
stress_comp = (mu1/alpha1) * (strain_comp.^alpha1 + strain_comp.^alpha1 + strain_comp.^alpha1 – 3);
% Plot compression
figure;
plot(strain_comp, stress_comp, ‘LineWidth’, 2);
xlabel(‘Strain (Compression)’);
ylabel(‘Stress’);
title(‘First Order Ogden Model – Compression’);
grid on; Hello,
I have the material constants mu and alpha to fit a first order ogden material model. Mu = 8000, alpha = 5.
I am trying to plot the stress strain curve. However, I would expect that the curve would intersect stress and strain at 0,0. Owing to the ogden formula, intersecting at 0,0 is not possible, which contradicts normal and expected material behaviour.
It would be great if someone could explain and help me understand where I am going wrong.
Thanks,
Tom
%%
close all;
clear all;
% Parameters
mu1 = 8000; % Shear modulus
alpha1 = 5; % Material parameter
% Strain range for compression
strain_comp = linspace(-1, 1, 1000); % From -0.5 to 0
% Stress calculation for compression
stress_comp = (mu1/alpha1) * (strain_comp.^alpha1 + strain_comp.^alpha1 + strain_comp.^alpha1 – 3);
% Plot compression
figure;
plot(strain_comp, stress_comp, ‘LineWidth’, 2);
xlabel(‘Strain (Compression)’);
ylabel(‘Stress’);
title(‘First Order Ogden Model – Compression’);
grid on; ogden, material behaviour, hyperelasticity, matlab MATLAB Answers — New Questions
Antenna toolbox – YagiUda antenna
Namaste & G’day
Creating the default YagiUda antenna yields, as expected,
y = yagiUda(‘NumDirectors’,1);
y = yagiUda(‘Exciter’, dipole,’NumDirectors’,1);
Tweaking its ‘Exciter’ parameter for what reason reorients the exciter, leaving other elements as is?Namaste & G’day
Creating the default YagiUda antenna yields, as expected,
y = yagiUda(‘NumDirectors’,1);
y = yagiUda(‘Exciter’, dipole,’NumDirectors’,1);
Tweaking its ‘Exciter’ parameter for what reason reorients the exciter, leaving other elements as is? Namaste & G’day
Creating the default YagiUda antenna yields, as expected,
y = yagiUda(‘NumDirectors’,1);
y = yagiUda(‘Exciter’, dipole,’NumDirectors’,1);
Tweaking its ‘Exciter’ parameter for what reason reorients the exciter, leaving other elements as is? antenna toolbox, yagi uda MATLAB Answers — New Questions
How does PPO+LSTM work?Can anyone explain my confusion?
Hello, everyone!
When I read about PPO in the official MATLAB documentation, I found this sentence: “When the agent uses a recurrent neural network, MiniBatchSize is treated as the training trajectory length.”
I’m puzzled how does PPO+LSTM sample and learn from the current set of experiences?
How to understand "MiniBatchSize is treated as the training trajectory length".Hello, everyone!
When I read about PPO in the official MATLAB documentation, I found this sentence: “When the agent uses a recurrent neural network, MiniBatchSize is treated as the training trajectory length.”
I’m puzzled how does PPO+LSTM sample and learn from the current set of experiences?
How to understand "MiniBatchSize is treated as the training trajectory length". Hello, everyone!
When I read about PPO in the official MATLAB documentation, I found this sentence: “When the agent uses a recurrent neural network, MiniBatchSize is treated as the training trajectory length.”
I’m puzzled how does PPO+LSTM sample and learn from the current set of experiences?
How to understand "MiniBatchSize is treated as the training trajectory length". deep reinforcement learning MATLAB Answers — New Questions