MATLAB Answers

## What is valid matlab syntax in if statement?

Asked by Clarisha Nijman

### Clarisha Nijman (view profile)

on 17 Jul 2018
Latest activity Commented on by Clarisha Nijman

### Clarisha Nijman (view profile)

on 17 Jul 2018
Accepted Answer by Steven Lord

### Steven Lord (view profile)

If I use "==" in the 9th line of this code it says: inappropiate use of == operator. If I use "=" I am getting a parse error.
CODE:
for j=3:size(A,2)
StartTijd=A(1,2);
tijdIndex=1;
for i=1:(size(A,1)-1)
if (A(i,j)-A(i+1,j))==1
Parkingtime(tijdIndex,j)=A(i+1,2)-tijd;%service time
tijd=(A(i+1,2));
else
A(i,j)-A(i+1,j)==-1;
StartTijd=A(i+1,2);
tijdIndex=i+1;
if Parkingtime(i+1,j)<0
Parkingtime(i+1,j)=0;
end
end
end
end
[SL: applied code formatting. Clarisha Nijman, in the future please use the {}Code button to format your code so it's easier to read.]

#### 1 Comment

Pawel Jastrzebski

### Pawel Jastrzebski (view profile)

on 17 Jul 2018
In your 'if' you're checking for the condition, hence '=='
if (A(i,j)-A(i+1,j))==1
And also you've got whole left side encompassed with the bracket (you don't have that with the 'else' bit)
if (L-side expression) == 1
Now further down the code, if 'if' not met, the code executes 'else' bit. In my opinion there's no reason for the comparison - it's the consequence of 'if' not being met. I think the code should like like this:
(A(i,j)-A(i+1,j)) = -1;
Which is simply assigning -1 to the expression on the left hand side.

Sign in to comment.

## 1 Answer

Answer by Steven Lord

### Steven Lord (view profile)

on 17 Jul 2018
Accepted Answer

What do you expect line 9, which is A(i,j)-A(i+1,j)==-1;, to do? Do you want to run lines 10-15 only if that condition is satisfied? If so, what you should do depends on whether A(i, j)-A(i+1, j) can only take on the values 1 or -1 or if it can take on other values (like 0) as well.
If that difference can ONLY be 1 or -1, you don't need the check. If you reach the else you know the difference was not 1, so by process of elimination it must be -1.
If the difference can be something other than 1 or -1, you probably want to use an elseif statement. The first example on the documentation page for the if keyword shows how to use elseif to check for a series of conditions in turn.

Clarisha Nijman

### Clarisha Nijman (view profile)

on 17 Jul 2018
Thank you for the feedback. It helped me. The problem was indeed the if. Instead of else it should be elseif. The difference can take value -1, 0, and 1. If the difference equals zero I do not want matlab to do anything.

Sign in to comment.