my code is showing not enough input argument error how to resolve
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
asim asrar
il 28 Set 2018
Commentato: asim asrar
il 28 Set 2018
clear all; close all; clc;
dx=0.01;
L=20;
x=-L/2:dx:L/2-dx;
f=0*x;
f=sech(x);
plot(x,f)
dt=0.025; % integral in time in increments of 0.025
for k =1:100
t=k*dt;
[t,y]=ode45(@(t,y)rhsNEW(t,y,L),[0 dt],f);
% we are assuming ode 45 is taking a lot of little steps and we want to
% to take the last step
f(:)=y(end,:);
plot(x,real(f))
axis([-10 10 -1.5 1.5])
pause(0.1)
end
function is -
function dout=rhsNEW(t,u,L)
pi=3.14;
Nx =length(u);
uhat=fft(u);
kap=(2*pi/L)*[-Nx/2:Nx/2-1];
kap=fftshift(kap');
duhat=1i*kap.*uhat;
du=ifft(duhat);
duout=-du;
0 Commenti
Risposta accettata
Walter Roberson
il 28 Set 2018
I tested your code and do not get that error. What I get is
Output argument "dout" (and maybe others) not assigned during call to "rhsNEW".
which is correct, as you assign to a variable named duout but not to dout.
When I change that variable name the code seems to work.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!