I am getting error "not enough input arguments" , I don't know how to resolve this.
이전 댓글 표시
function [dn]=numparticles(t, n)
global SECT funcall No m
funcall=funcall+1;
dn=zeros(SECT,1);
sums=zeros(3,1);
disp(['Function call ', num2str(funcall),' t value ', num2str(t) ,' of ',num2str(120),'.'])
for i=1:SECT
if (i-2 >= 1)
for j=1:i-2
sums(1)=sums(1)+beta(i-1,j)*2^(j+1-i)*n(j);
end
end
if (i-1 >= 1)
for j=1:i-1
sums(2)=sums(2)+beta(i,j)*2^(j-i)*n(j);
end
dn(i)=dn(i)+ n(i-1)*sum(1)+ 0.5*beta(i-1,i-1)*n(i-1)^2-n(i)*sums(2);
end
if (i+1 <=SECT)
% dn(i)=dn(i)+2*gamma(i+1)*n(i+1);
for j=1:SECT
sums(3)=sums(3)+beta(i,j)*n(j);
end
dn(i)=dn(i)-n(i)*sums(3);
end
dn(i)=dn(i)/No(1);
sums=zeros(3,1);
end
댓글 수: 1
답변 (1개)
How do you call this function? If you use the green triangle in the editor, the function is called without inputs and you will see the mentioned error.
You have to call it with inputs from the command window or from another script or function:
t = ???;
n = ???;
dn = numparticles(t, n)
댓글 수: 3
KAJAL KUMARI
2021년 6월 30일
If I change the line:
[t, N]=ode15s('numparticles',[0 120],No);
to
[t, N]=ode15s(@numparticles,[0 120],No);
the code runs in Matlab r2021a.
A small acceleration of the code:
function B = beta(i,j)
k = (i/j) ^ (1/3);
B = 0.25 * (2 + k + 1/k)
end
KAJAL KUMARI
2021년 6월 30일
카테고리
도움말 센터 및 File Exchange에서 Solar Power에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!