MATLAB Answers


Create a two variables function, including several law in MATLAB

Asked by la
on 18 Jun 2015
Latest activity Commented on by la
on 19 Aug 2015
Dear Mathworks team
Please guide me. I searched in the FAQ and the Internet, but could not find answer for my question.
I want to create a two variables function, including several law in MATLAB. Then, I want to import code into C#.(I need the output of this function for C#)
How can I create this function
Thank you in advance for your attention and answer


Sign in to comment.

2 Answers

Answer by B.k Sumedha on 18 Jun 2015
 Accepted Answer


Walter Roberson Hello To understand my question, Please see attached file and tell what is wrong? * Some of the outputs of this code is wrong * Thank you in advance
@la: there are multiple issue with the code that could be improved, and these would make the bug-fixing easier too:
  • do not place close all and clc at the start of every function and script. Although beginners love doing this it is sloppy programming: this function has nothing to do with figures, so why close them inside it? Functionally unrelated and thus a poor design decision.
  • remove unnecessary parentheses, as these only clutter the text and make it hard to read.
  • learn about operator precedence to help remove unnecessary parentheses.
  • do not repeat logical comparisons unnecessarily: perform them once!
  • do not use chains of mutually-exclusive if statements when you can simply use elseif statements.
  • learn to read the documentation. This will help you to discover that relational operators in MATLAB are binary operators, so the syntax A<x<B is not permitted, only A<x & x<B, exactly as Walter Roberson clearly explained in his answer too.
After all of that you might end up with a function like this (attached):
Stephen Cobeldick

Sign in to comment.

Answer by Walter Roberson
on 19 Jun 2015

21<x2<=27 is parsed as
In the first step, 21<x2 returns a logical value, 0 or 1. In the second step, that 0 or 1 is compared <= 27. 0 and 1 are always <= 27 so the overall test would always be true.
If you want to test whether a value is in a range, write it as two tests:
21<x2 & x2 <= 27

  1 Comment

Walter Roberson! Thanks a lot. :)

Sign in to comment.