vectorize with function/procedure

vectorize with function/procedure - vectorize not working as I expect to do - Messages

#1 Posted: 4/15/2017 12:59:18 PM
Martin_B

Martin_B

21 likes in 84 posts.

Group: User

Please have a look a the following example:

The first two results look good.
But why assigning the formula to a variable not work?
And the result test2 doesn't look right, does it?

vectorize.PNG

vectorize.sm (11 KiB) downloaded 78 time(s).

Thanks for your help!
#2 Posted: 4/15/2017 7:12:32 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Result is same as if done by hand.

vectorize.sm (11 KiB) downloaded 103 time(s).
#3 Posted: 4/16/2017 6:46:10 AM
Martin_B

Martin_B

21 likes in 84 posts.

Group: User

Wrote

Result is same as if done by hand.


Probably I don't really understand how vectorize works.
If _I_ would do it by hand,
  • I take the first element of "f" and the first element of "phi" (the two vectors in the expression)
  • I calculate the result and put it as first element in a vector
  • I continue with the the second elements ...
  • I would obtain a two-element-vector

that's what I get by evaluating the expression
vectorize(f*K.agh(φ,5*'°,0*'°,0*'°)

I don't understand why it's a different result if this expression is assigned to a variable.

If the first factor within vectorize is a scalar, the error "Matrix must be square." is shown. But again only if the expression is assigned to a variable.

Everything works fine with functions without the line command. (But it's not possible to to do it without line in every case.)

vectorize2.PNG

vectorize2.sm (15 KiB) downloaded 68 time(s).
#4 Posted: 4/16/2017 9:42:18 AM
Radovan Omorjan

Radovan Omorjan

325 likes in 2052 posts.

Group: Moderator

Hello,

The problem is in the function definition with or without line environment (as you already noted), and using the function call inside vectorize. See the picture please.

lineornottoline.PNG

It might be a bit peculiar (maybe a bug) but one should be careful about it. It is advisable to assign the values to variables first and then to use vectorize (not to use function calls with vector arguments inside vectorize). Anyway, your gave an example where one can be easily confused.

Regards,
Radovan
When Sisyphus climbed to the top of a hill, they said: "Wrong boulder!"
1 users liked this post
Martin_B 4/17/2017 4:06:00 PM
#5 Posted: 4/16/2017 7:57:44 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Nice comment Radovan,

The Mathcad vectorize operator is particular to Mathcad.
No fixed rule, just case by case. Same applies to Smath.

Jean

vectorize demo.sm (32 KiB) downloaded 123 time(s).
1 users liked this post
Radovan Omorjan 4/17/2017 4:16:00 AM
#6 Posted: 4/24/2017 9:53:59 AM
Martin_B

Martin_B

21 likes in 84 posts.

Group: User

Found another strange behavior (as I think):
Shouldn't vectorize handle 1-element vectors like any other with more elements?

vectorize_one.PNG
#7 Posted: 4/24/2017 12:26:05 PM
Davide Carpi

Davide Carpi

1417 likes in 2873 posts.

Group: Moderator

Wrote

Found another strange behavior (as I think):
Shouldn't vectorize handle 1-element vectors like any other with more elements?



It should. I think I can fix it, thank you (see BTS SS-2443)

As for the initial problem, I tend to consider it a bug/issue, simply because what you get when the function is on the left side of an evaluation is not what you get when the function is on the right side of an assignment.
If you like my plugins please consider to support the program buying a license; for personal contributions to me: paypal.me/dcprojects
#8 Posted: 4/24/2017 12:58:15 PM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Vectorize operator operates on the RHS of an equation !
Example [1] is oK
Example [2] would not support the RHS of different unit dimensions [m, km ...]
"type conversion not supported".
#9 Posted: 4/24/2017 1:23:12 PM
Martin_B

Martin_B

21 likes in 84 posts.

Group: User

Wrote

Vectorize operator operates on the RHS of an equation !
Example [1] is oK
Example [2] would not support the RHS of different unit dimensions [m, km ...]
"type conversion not supported".


OK.
Let's put the operator on the RHS and vary the units:
vector_1.PNG
#10 Posted: 4/25/2017 11:24:53 AM
Jean Giraud

Jean Giraud

983 likes in 6866 posts.

Group: User

Not sure I understand your problem.
Visit "Samples" [2 months back or +]
several examples of vectorizing associated with functions.

Cheers, Jean

vectorize bolean.sm (21 KiB) downloaded 91 time(s).
#11 Posted: 4/25/2017 12:45:14 PM
Martin_B

Martin_B

21 likes in 84 posts.

Group: User

I just mentioned, that vectorize cannot handle vectors with the length 1.
And I think it should.
Or the other way round: Why do you think, it is correct the way it works at current state.

And my previous post was a reply to your comment to show that RHS or not doesn't matter and that unit dimensions also don't affect "my" problem at all.
  • New Posts New Posts
  • No New Posts No New Posts