Error: Not enough input arguments
1 次查看(过去 30 天)
显示 更早的评论
I have the following error in my Runge-Kutta (4 stage) function:
Not enough input arguments.
Error in RK4
for j = 2:N-1 % ERROR HERE
Error in EulerMUSCL (line 94)
[U_RK] = RK4( U_T, Res, dx, dt, k);
My function:
function [ U_RK ] = RK4( U_T, Res, dx, dt, k,N )
%This function returns the consvar and applies 4th order RK.
U_RK = U_T;% size is 8 by 1001 (8 by N)
a = zeros(4,1);
a(1) = 0.25;
a(2) = 1.0/3.0;
a(3) = 0.5;
a(4) = 1.0;
for j = 2:N-1 %ERROR HERE
U_RK(:,j) = U_T(:,j)-a(k)*dt*Res/(dx);
end
end
Why does it say not enough inputs?? Thanks
0 个评论
采纳的回答
per isakson
2021-5-2
编辑:per isakson
2021-5-2
Accourding to the definition
function [ U_RK ] = RK4( U_T, Res, dx, dt, k, N )
requires six input values. Your call of the function, RK4
[U_RK] = RK4( U_T, Res, dx, dt, k);
provides only five input values. A value for the last, N, is missing.
2 个评论
per isakson
2021-5-2
编辑:per isakson
2021-5-2
This script returns a <8x100 double>; i.e. it doesn't throw an error.
%%
N = 1e2;
UT = randn( 8, N );
U_RK = RK4( UT, 1, 1e-2, 1e-2, 4, N );
Let me guess, you have switch the order between the inputs k and N. Compare the function declaration and your call-statement.
function [ U_RK ] = RK4( U_T, Res, dx, dt, k, N )
[U_RK] = RK4( U_T, Res, dx, dt,N, k);
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!