evaluating matrix in if statement

2 visualizzazioni (ultimi 30 giorni)
Franco
Franco il 11 Feb 2011
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

Risposta accettata

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

Più risposte (1)

Oleg Komarov
Oleg Komarov il 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

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by