evaluating matrix in if statement

3 views (last 30 days)
How can i get an if statement to evaluate a truth condition based on a matrix, such that
tol = [.0001;.0001;.0001;.0001;.0001;.0001;.0001;.0001;.0001;.0001]
difference_force = [10;10;10;10;10;10;10;10;10;10]
difference_displacement = [10;10;10;10;10;10;10;10;10;10]
if (difference_force > tol) == ones(1,10)' && (difference_displacement > tol)
without getting "Operands to the and && operators must be convertible to logical scalar values." error

Accepted Answer

Walter Roberson
Walter Roberson on 11 Feb 2011
if all(difference_force > tol) && all(difference_displacement > tol)

More Answers (1)

Oleg Komarov
Oleg Komarov on 11 Feb 2011
The condition:
if (difference_force > tol) & (difference_displacement > tol)
reads:
if every value of difference_force is elementwise bigger than its correspondent value in tol and at the same time every value of difference_displacement is elementwise bigger than its correspondent value in tol
Note that you cannot use shortcircuit operator (&&, ...) with vectors.
Oleg

Categories

Find more on Descriptive Statistics in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!