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

2 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

Stephen23
Stephen23 on 22 Jan 2021
Edited: Stephen23 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

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!