MATLAB: I can’t seem to find the error in the program.

convolutionerror

My program looks like this, its supposed to take the input signal and output signal after convolution and graph them versus a variable.
function graphconv(~)
L=200;
K=50;
n=0:L-1;
z = double(rem(n,K) < K/2);
h=@(n) 1/15 .* n>=0&&n<=14;
y = conv(h,z);
plot(n,z,'r',n,y,'b')
but i keep getting these errors and i can't seem to understand what they mean. I already tried googling it but to no avail.
ERROR CODES:
>> graphconv
Input arguments to function include colon operator. To input the colon character,
use ':' instead.
Error in conv (line 43)
c = conv2(a(:),b(:),shape);
Error in graphconv (line 11)
y = conv(h,z);

Best Answer

You are passing a function handle as an argument to conv. That is throwing the error.
Pass the function with an argument (so it returns a value) instead:
h=@(n) 1/15 .* ((n>=0) & (n<=14));
y = conv(h(n),z, 'same');
Use only one ‘&’ in ‘h’ to test vectors. (Using ‘&&’ requires logical arguments, and you have a vector of numeric arguments.) I added the 'same' argument because that then works in your plot call without problems. If you want a different plot, you will have to call it with either one argument (probably ‘z’), or two equal-length arguments.