Please help
p was changed to a normal and is giving me the error "Matrix dimensions must agree." in tau.
t0=0;
L=1;
tend=100;
I=linspace(0, 1);
p = normrnd(0.0001,0.0001,[1,10])
beta=0.1;
delta=1;
I1=0.25;
epsilon=1;
tau = (1/(beta*(L+delta*p)))*log((L*(I1+delta*p))/(delta*p*(L-I1)))
t1=linspace(0,tau);
t2=linspace(tau,tend);
I2= (L*delta*p*(exp (beta*(L+delta*p)*t1)-1)) ./ (L + delta*p* exp(beta*(L+delta*p)*t1));
I3= (L* (I1+delta*p)*exp((epsilon*beta)*(L+delta*p)*(t2-tau))-...
delta*p*(L -I1))./(L-I1+(I1+delta*p)*exp(epsilon*beta*(L+delta*p)*(t2-tau(delta))));
plot(t1,I2,'k',t2,I3,'k');

 채택된 답변

Star Strider
Star Strider 2020년 11월 20일

1 개 추천

Use element-wise operations on every multiplication, division (and exponentiation, although not used here).
This works:
tau = (1./(beta.*(L+delta.*p))).*log((L.*(I1+delta.*p))./(delta.*p.*(L-I1)));
See Array vs. Matrix Operations for details.

댓글 수: 2

JACINTA ONWUKA
JACINTA ONWUKA 2020년 11월 20일
thanks so much for your quick reply
another error "Inputs must be scalars."
t1=linspace(0,tau);
Can you please advice me on what to do?
Thanks!
Provide all scalar inputs to linspace.
Perhaps:
t1=linspace(0, max(tau), numel(tau));
t2=linspace(min(tau), max(tau), tend);
These are obviously just guesses.
I have no idea what you are doing, so make appropriate changes to get the result you want.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

제품

질문:

2020년 11월 20일

댓글:

2020년 11월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by