# MATLAB Code Debugging

Not what you're looking for?

Without changing the codes, the errors boxed is what I am getting when I run these codes. I am not sure if I am supposed to create files first. I would like codes that are basic and running.

function out=bisect_1(fname, a, b, eps)

% bisection algorithm

% fname must be a function handle (if you want to use a string instead,

% use eval)

% sign(fa)*sign(fb) must be negative where fa=feval(fname,a) and

% fb=feval(fname,b)

%

% Example:

% fname=@(x)(exp(-cos(x))-1);

% root1=bisect_1(fname, 1, 2, 1e-3);

% root1

%

% To find the second root, use a=4 and b=5

% To find the third root, use a=7 and b=8

%

% Now to compare the results, use fzero() function

% first root-->fzero(fname, 1)

% second root-->fzero(fname, 5)

% third root-->fzero(fname, 8)

%

% You could add more codes to check the inputs to the function

% and act accordingly.

%

out='root not found';

if sign(feval(fname,a))*sign(feval(fname,b)) > 0

disp('function doesn''t cross zero betwenn the specified interval!!');

return ;

end

N=100; %to avoid infinite loop

found=false;

iter=0;

while(iter<N)

iter=iter+1;

c=(a+b)/2;

fa=feval(fname,a);

fb=feval(fname,b);

fc=feval(fname,c);

if (fc==0 || (b-a)/2<eps)

out=c;

found=true;

break;

else

if sign(fc)==sign(fa)

a=c;

else

b=c;

end

end

end

if found==false

disp('Root not found!')

end

The error Iam getting for the above code

??? Input argument "fname" is undefined.

Error in ==> bisect_1 at 25

if sign(feval(fname,a))*sign(feval(fname,b)) > 0

function out=insertionSort(inArray)

% insertion sort algorithm

% inArray must be a vector

% out is the result of insertion sort

% Example:

% a=round(10*rand(1,10)+1);

% a_sorted=insertionSort(a);

% a_sorted

%

for i=1:length(inArray)

temp=inArray(i);

j=i;

while (j>1 && inArray(j-1)>temp)

inArray(j)=inArray(j-1);

j=j-1;

end

inArray(j)=temp;

end

out=inArray;

??? Input argument "inArray" is undefined.

Error in ==> insertionSort at 11

for i=1:length(inArray)

function out=my_cos(x, N, varargin)

%check for eps

if length(varargin)>1

disp('number of arguments must be 2 or 3!!')

return;

elseif length(varargin)==1

eps=varargin{1};

else

eps=0;

end

%start estimation

result=0;

for i=0:N-1

%calculate i-th term

numerator=(-1)^i;

denom=factorial(2*i);

factor=x^(2*i);

temp=(numerator/denom)*factor;

%compare to eps

if abs(temp)>eps

result=result+temp;

else

break;

end

end

out=result;

error for the above code

??? Input argument "N" is undefined.

Error in ==> my_cos at 15

for i=0:N-1

##### Purchase this Solution

##### Solution Summary

This solution helps debug a MATLAB code.

##### Solution Preview

Read the comment on the file. You get the error because you do not pass a function handle for fname. Probably you are just passing a string. You need to adjust the code if you want to pass a string. Anyway here is how you define a function handle and pass it to the ...

##### Purchase this Solution

##### Free BrainMass Quizzes

##### Inserting and deleting in a linked list

This quiz tests your understanding of how to insert and delete elements in a linked list. Understanding of the use of linked lists, and the related performance aspects, is an important fundamental skill of computer science data structures.

##### C++ Operators

This quiz tests a student's knowledge about C++ operators.

##### Java loops

This quiz checks your knowledge of for and while loops in Java. For and while loops are essential building blocks for all Java programs. Having a solid understanding of these constructs is critical for success in programming Java.

##### Word 2010: Tables

Have you never worked with Tables in Word 2010? Maybe it has been a while since you have used a Table in Word and you need to brush up on your skills. Several keywords and popular options are discussed as you go through this quiz.

##### Javscript Basics

Quiz on basics of javascript programming language.