MATLAB Answers

Why am I getting "Array indices must be positive integers or logical values" error?

16 views (last 30 days)
Array indices must be positive integers or logical values.
Error in A2Q1>LinearConv (line 68)
yc(i) = yc(i) + x1(i-j+1).*x2(j);
function yfnc = LinearConv(x1, x2, len)
yc = zeros(1, len);
for i = 1:len
%Total terms will be 1 to len
for j = 1:(i+1)
if(i-j+1<length(x1) && j<length(x2))
yc(i) = yc(i) + x1(i-j+1).*x2(j);
%Equation
end
end
end
yfnc = yc;
end

Accepted Answer

Stephen Cobeldick
Stephen Cobeldick on 22 Jan 2021
Edited: Stephen Cobeldick on 22 Jan 2021
Consider this indexing:
x1(i-j+1)
What value does it have on the last iteration of the j loop? (hint: zero).
i-j+1 % that index
j = i+1 % last iteration
i-(i+1)+1 % substitute j
i-i-1+1 % zero

  0 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!