I can't seem to find the error in my program.
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Santos Tapia
am 17 Feb. 2018
Kommentiert: Star Strider
am 19 Feb. 2018
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);
0 Kommentare
Akzeptierte Antwort
Star Strider
am 17 Feb. 2018
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.
6 Kommentare
Weitere Antworten (2)
Walter Roberson
am 17 Feb. 2018
What it is really getting at is that you cannot conv() a function handle on a matrix. The firs two arguments to conv must be numeric vectors or arrays.
It appears to me that you probably want
conv(z, ones(1,15)/15)
and that possibly you might want to add the 'same' or 'valid' option in the third parameter.
Image Analyst
am 17 Feb. 2018
h needs to be an actual numerical array, not a function defnintion. Try
h = 1/15 .* n>=0&&n<=14;
instead.
3 Kommentare
Walter Roberson
am 17 Feb. 2018
h = @(n) 1/15 .* (n>=0 & n<=14);
However, you still cannot convolve with that.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!