Write a MATLAB function maxproduct that takes v a vector and

Write a MATLAB function max_product that takes v a vector and n, a positive integer, as inputs and computes the largest product of n consecutive elements of v. It returns the product and the index of the element of v that is the first term of the product. If there are multiple such products in v, the function must return the one with the smallest starting index. As an example, the following call >> [product, ind] = max_product([1 2 2 1 3 1],3); will assign 6 to product and 3 to ind since the max 3-term product in the input vector is 2*1*3. If v has fewer than n elements, the function returns 0 and -1, respectively.

Solution

function [product , ind ] = max_product(v,n)

cmp2 = 1;

cmp1 = 1;

pos = 1;

if(n <= length(v))

for i = 1:n

cmp2 = cmp2 * v(i);

end

for j = 2 : length(v) + 1 - n

cmp1 = 1;

for k = 0 : n - 1

cmp1 = cmp1 * v(j + k);

end

if(cmp1 > cmp2)

cmp2 = cmp1;

pos = j;

end

end

product = cmp2;

ind = pos;

else

product = 0;

ind = -1;

end

end

Write a MATLAB function max_product that takes v a vector and n, a positive integer, as inputs and computes the largest product of n consecutive elements of v.

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site