How to ignore negative indices or assign it to zero in a loop
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MD JAHIDUL HAQUE KHAN
am 5 Mai 2021
Kommentiert: MD JAHIDUL HAQUE KHAN
am 5 Mai 2021
x=[1 2 -1 -3 -4]
h=[0 1 3]
n=length(x)
m=length(h)
y=zeros(n,m)
for i=1:n
for j=1:m
if i-j>0
y(i,j)=h(j)*x(i-j+1)
else
y(i,j)=0 % My problem is here to assign if the element x(i-j) does not exist return zero
%but it is ignoring all the element in the matrix that is (i-j)< zero
end
end
end
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/608060/image.png)
I have tried approach this problem by setting up a matrix, however i did not start loop from zero since it is same both way if i am right
0 Kommentare
Akzeptierte Antwort
Stephan
am 5 Mai 2021
Bearbeitet: Stephan
am 5 Mai 2021
It is not needed to make the elements zero - they are already, because you preallocated y with zeros:
x=[1 2 -1 -3 -4]
h=[0 1 3]
n=length(x)
m=length(h)
y=zeros(n,m)
for i=1:n
for j=1:m
if i-j>0
y(i,j)=h(j)*x(i-j+1)
end
end
end
gives:
% alot of stuff
% ...
y =
0 0 0
0 0 0
0 2 0
0 -1 6
0 -3 -3
3 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!