Using Matrix element in Boolean evaluation

Using Matrix element in Boolean evaluation - Mensajes

#1 Publicado: 22/11/2017 15:06:57
Arie

Arie

94 me gusta en 285 mensajes.

Grupo: User

I ran across this issue in one of my files. I'm not sure if this is a known issue or not.
It appears if I try to use an element of a matrix in a boolean operation, the evaluation fails.
However, if I first assign that matrix element to another variable, then use that variable in the boolean operation this works.


Edit: This is observed in both 0.98.6528 and 0.98.6484

Untitled.png
Feel free to join the SMath Studio Users Discord Channel: https://discord.gg/PayZpJW
#2 Publicado: 22/11/2017 18:40:32
Jean Giraud

Jean Giraud

983 me gusta en 6.866 mensajes.

Grupo: User

Wrote

I'm not sure if this is a known issue or not.



There is no issue in there: the vectorize operator is a descending operator.
Example 2, it compares each successive value with a wild variable, the test is
true twice. Example 1, vectorize descends over two vectors of unequal length.
The indexed is not a wild variable to dispose, rather a vector of single element.

Just erroneous instruction.
A 1 usuarios les gustó este mensaje
Arie 22/11/2017 20:07:00
#3 Publicado: 22/11/2017 19:06:23
Arie

Arie

94 me gusta en 285 mensajes.

Grupo: User

That is what appears to happen. But if that's true why does the assignment of a 1x1 vector evaluate to a single value as in V.OUT.


It seems inconsistent.

I should note that in the first expression, V.CLAMP]2 is surrounded by parenthesis, not the matrix brackets.
Feel free to join the SMath Studio Users Discord Channel: https://discord.gg/PayZpJW
#4 Publicado: 22/11/2017 19:58:01
Martin Kraska

Martin Kraska

1.361 me gusta en 2.275 mensajes.

Grupo: Moderator

vectorize checks for non-scalar variables and then loops over the elements of these variables. For this in order to work, all these variables need to have the same length.

The expression isn't further analyzed before this is done. In particular, there isn't any check if some of the subexpressions might evaluate to scalars (e.g. by applying the index function or absolute value or the like).
Technische Mechanik mit SMath Studio: https://link.springer.com/book/10.1007/978-3-658-50592-9
A 1 usuarios les gustó este mensaje
Arie 22/11/2017 20:07:00
#5 Publicado: 22/11/2017 21:44:14
Jean Giraud

Jean Giraud

983 me gusta en 6.866 mensajes.

Grupo: User

Wrote

That is what appears to happen. But if that's true why does the assignment of a 1x1 vector evaluate to a single value as in V.OUT.


It seems inconsistent.

I should note that in the first expression, V.CLAMP]2 is surrounded by parenthesis, not the matrix brackets.


That particular Bolean responds to universal rules. Most [if not all] Smath borrows
universal codes/functions. When you assign [1x] to var, you convert to "scalar".
At this point, the vectorize operator can descend and apply the Bolean test to each
of the elements in U. A "scalar" is a vanishing iterator, example: plot canvas.

BoleanTest.PNG

  • Nuevos mensajes
  • Sin mensajes nuevos