How to ignore negative indices or assign it to zero in a loop
5 次查看(过去 30 天)
显示 更早的评论
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
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 个评论
采纳的回答
Stephan
2021-5-5
编辑:Stephan
2021-5-5
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!