필터 지우기
필터 지우기

Setting variable to zero with conditional statement?

조회 수: 3 (최근 30일)
matlabkid602
matlabkid602 2017년 11월 19일
편집: matlabkid602 2017년 11월 19일
I'm writing a for loop which runs through values and sometimes the element that the loop selects is outwith the vector length.
For example, say I have a vector of 10 entries and the loop asks for the 11 "th" entry it doesn't exist so I get an error.
How do I put this in the code with an if statement? I want the code to go like:
%the loop selects y(n)
if n>10 then set y(n) = 0
else y(n) = y(n)
Sorry if it's unclear, I'm sure it's a simple fix?
  댓글 수: 2
Jose Marques
Jose Marques 2017년 11월 19일
Could you post your entire code? So we can help you better
matlabkid602
matlabkid602 2017년 11월 19일
편집: Walter Roberson 2017년 11월 19일
shift = k-n;
if shift <1 || shift >21
y(shift) = 0;
end

댓글을 달려면 로그인하십시오.

답변 (1개)

Walter Roberson
Walter Roberson 2017년 11월 19일
if n>length(y); y(n) = 0; end
  댓글 수: 3
Walter Roberson
Walter Roberson 2017년 11월 19일
If I understand correctly, for negative shift you would like to set array locations with negative indices? That is not permitted in MATLAB. Do you want negative shift to be interpreted as starting from the maximum value, with n = -1 being interpreted the same as y(end) and n = -2 being interpreted the same as y(end-1) ?
matlabkid602
matlabkid602 2017년 11월 19일
편집: matlabkid602 2017년 11월 19일
If I choose k such that somewhere during the loop "shift" becomes negative, or greater than the length of y, I want y(shift) = 0.
I'm solving ODE's with the loop and need this condition.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by