evaluating matrix in if statement
3 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
Walter Roberson
2011-2-11
if all(difference_force > tol) && all(difference_displacement > tol)
0 个评论
更多回答(1 个)
Oleg Komarov
2011-2-11
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
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!