Using Matrix element in Boolean evaluation

Using Matrix element in Boolean evaluation - Сообщения

#1 Опубликовано: 22.11.2017 15:06:57
Arie

Arie

93 сообщений из 285 понравились пользователям.

Группа: 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 Опубликовано: 22.11.2017 18:40:32
Jean Giraud

Jean Giraud

983 сообщений из 6866 понравились пользователям.

Группа: 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.
1 пользователям понравился этот пост
Arie 22.11.2017 20:07:00
#3 Опубликовано: 22.11.2017 19:06:23
Arie

Arie

93 сообщений из 285 понравились пользователям.

Группа: 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 Опубликовано: 22.11.2017 19:58:01
Martin Kraska

Martin Kraska

1222 сообщений из 2150 понравились пользователям.

Группа: 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).
Martin Kraska Pre-configured portable distribution of SMath Studio: https://en.smath.info/wiki/SMath%20with%20Plugins.ashx
1 пользователям понравился этот пост
Arie 22.11.2017 20:07:00
#5 Опубликовано: 22.11.2017 21:44:14
Jean Giraud

Jean Giraud

983 сообщений из 6866 понравились пользователям.

Группа: 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

  • Новые сообщения Новые сообщения
  • Нет новых сообщений Нет новых сообщений