what's wrong here? I have copied this code from my textbook and it's not working

1 visualizzazione (ultimi 30 giorni)
Help me here plz:
------------------------------------------------
function xb=insearch(func,xmin,xmax,ns)
if nargin <4;
ns=50;
end
x=linspace(xmin,xmax,ns);
f=func(x);
nb=0;
xb=[];
for k=1:length(x)-1;
if sign (f(k))~=sign(f(k+1))
nb=nb+1;
xb(nb,1)=x(k);
xb(nb,2)=x(k+1);
end
end
if isempty(xb)
disp('no brackets found')
disp('check interval or increase ns')
else
disp('number of brackets:')
disp(nb)
end
and In the command window:
insearch (@x sin(10*x)+cos(3*x),xmin,xmax,ns)
and am getting the following error:
Error: Unexpected MATLAB expression.

Risposta accettata

Walter Roberson
Walter Roberson il 5 Mag 2015
insearch (@(x) sin(10*x)+cos(3*x),xmin,xmax,ns)
notice I changed the @x to @(x)

Più risposte (1)

Ahmet Cecen
Ahmet Cecen il 5 Mag 2015
Your problem is here:
insearch (@x sin(10*x)+cos(3*x),min,max,ans)
It is NOT:
@x sin(10*x)+cos(3*x)
It is:
@(x) sin(10*x)+cos(3*x)

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!

Translated by