Sie sind auf Seite 1von 4

%Question 1a

%A recursive function is a function which calls itself upon execution.


%An example will be calculation of n! using a recursive function.
function out = recfact(n)
%Assume n is a positive integer
if n == 1
out = 1;
else
out = n* recfact(n-1);
end
end

%Question 1b
function result = f1(mat1,mat2)
result = (mat2./mat1) + mat2*2 - 4;
end

%Question 1c
if x == 0
y = f(x,4);
elseif x == 1 || x == 2
y = f(x,2);
elseif x == -1 || x == -2 || x == -3
y = f(x,3);
else
y = f(x,1);
end

%Question 1d
1
3
7

%Question 2i
*
***
*****
*******
*********
***********

%Question 2ii
function func3(n)
vec = [n:-1:2 1:n]; %Descending numbers, and go back up again
for i = 1:n
for j = vec
if j<=i %If inner iteration is lesser than or equals row number,
print num
fprintf('%d',j);
else fprintf(' ');
end
end
fprintf('\n'); %A new line after one outer for loop iteration!
end

%Question 3i
function status = isPrime(n)
if n == 1
status = logical(0);
elseif n == 2
status = logical(1);
else %determine by loops!
status = logical(1); %By default, assume it is prime
for r = 2:floor(sqrt(n))
if rem(n,r)==0 %Oh, not so prime after all huh.
status = logical(0);
end
end
end
end

%Question 3ii
function outvec = filter(invec)
outvec = [];
%Assume efficiency not so important, just append to make life easier.
for i = 1:length(invec)
if round(invec(i))== invec(i) %It is an integer
if invec(i)<=0 %Negative or zeroes are kept
outvec = [outvec invec(i)];
elseif isPrime(invec(i)) %Positive prime numbers are kept
outvec = [outvec invec(i)];
end
end
end
end

%Question 4i
function outvec = insert_element(invec,n)
if n < min(invec)
outvec = [n invec]; %Concatenate together
else
position = max(find(n>=invec)); %Find the largest index
outvec = [invec(1:position) n invec(position+1:end)]; %And put n one position
after
end
end

%Question 4ii
function outvec = insertion_sort(invec)
outvec = [];
while length(invec)~=0 %There are still elements inside
outvec = insert_element(outvec,invec(1));
invec(1) = [];
end
end

Das könnte Ihnen auch gefallen