MATLAB Answers

0

Subscript indices must either be real positive integers or logicals.

Asked by Lucas Vacus on 17 Aug 2019
Latest activity Edited by KALYAN ACHARJYA on 17 Aug 2019
x=[1 2 3 4];
h=[1 2 3];
m=length(x);
n=length(h);
OP_len=m+n-1;
less=OP_len-n;
Abs=h;
for Kk=1:less
Abs=[Abs,0];
end
Y=Abs.';
for jj=1:m
temp=Abs(OP_len-1);
for kk=OP_len:-1:1
Abs(kk)=Abs(Kk-1);
end
Abs(0)=temp;
Y=[Y,Abs.'];
end
Why I am getting "Subscript indices must either be real positive integers or logicals." Error
Error in LinConvolution (line 20)
Abs(Kk)=Abs(Kk-1);

  0 Comments

Sign in to comment.

Tags

2 Answers

Answer by KALYAN ACHARJYA on 17 Aug 2019
Edited by KALYAN ACHARJYA on 17 Aug 2019

Abs(1)=temp;
In Matlab indexing start from 1, not zero
Hence
Allowed
A(1), A(2), A(3),....
Not Allowed
A(0), A(-1), A(-2),....etc

  0 Comments

Sign in to comment.


Answer by the cyclist
on 17 Aug 2019

Unlike some other programming languages (e.g. python), MATLAB has 1-based indexing. The first element of the array A would be referenced as A(1), not A(0). So, if you try to access A(0), you will get that error message.

  0 Comments

Sign in to comment.