What is valid matlab syntax in if statement?
    5 views (last 30 days)
  
       Show older comments
    
    Clarisha Nijman
      
 on 17 Jul 2018
  
    
    
    
    
    Commented: Clarisha Nijman
      
 on 17 Jul 2018
            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
      
 on 17 Jul 2018
				
      Edited: Pawel Jastrzebski
      
 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.
Accepted Answer
  Steven Lord
    
      
 on 17 Jul 2018
        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.
More Answers (0)
See Also
Categories
				Find more on Graphics Performance in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

