How to obtain element-wise squaring of vector/matrix?
11-26-2019, 07:40 PM
Post: #1
 mbeddo Member Posts: 54 Joined: Nov 2014
How to obtain element-wise squaring of vector/matrix?
I'm implementing a non-linear fitting routine and [/code]I need to square the elements of a vector from within a program. From the CAS screen I can easily square the elements of a vector [1, 2, 3, 4]:

The simple program below has a syntax error:

Code:
 EXPORT DEMO() BEGIN   LOCAL myvec;   myvec := [1, 2, 3, 4];   apply(x→x^2, myvec); END;

I don't know what I'm doing wrong.

I looked for a function that would square element-wise, and "apply" seemed to fit the bill. I'm trying to avoid a FOR loop.

I think it would be easier if I just squared a list of numbers, then converted the answer to a vector?
11-26-2019, 08:47 PM
Post: #2
 swagner53 Junior Member Posts: 18 Joined: Jun 2018
RE: How to obtain element-wise squaring of vector/matrix?
Hi,

apply is a CAS command that does not work under Home. Try converting to a CAS program by sandwiching your code between #cas and #end. Hopefully, that will work.

Take care & good luck, Steve
11-26-2019, 11:18 PM
Post: #3
 goetz Junior Member Posts: 33 Joined: Feb 2018
RE: How to obtain element-wise squaring of vector/matrix?
Alternatively you could also use the "point" operator .^ for element wise power operator on a vector or matrix , e.g.:

Code:
[1, 2, 3, 4].^2

resulting in: [1, 4, 9, 16]
11-27-2019, 07:16 AM
Post: #4
 mbeddo Member Posts: 54 Joined: Nov 2014
RE: How to obtain element-wise squaring of vector/matrix?
(11-26-2019 08:47 PM)swagner53 Wrote:  Hi,

apply is a CAS command that does not work under Home. Try converting to a CAS program by sandwiching your code between #cas and #end. Hopefully, that will work.

Take care & good luck, Steve

I found this works:
Code:
 #cas DEMO2():= BEGIN   apply(x→x^2, [1, 2, 3, 4]); END; #end

Thanks!
11-27-2019, 07:20 AM
Post: #5
 mbeddo Member Posts: 54 Joined: Nov 2014
RE: How to obtain element-wise squaring of vector/matrix?
(11-26-2019 11:18 PM)goetz Wrote:  Alternatively you could also use the "point" operator .^ for element wise power operator on a vector or matrix , e.g.:

Code:
[1, 2, 3, 4].^2

resulting in: [1, 4, 9, 16]

Fantastic!

It seems I still have a ways to go digesting the reference manual - these point operators didn't register while searching for element-wise operators. Guess I have a ways to go to learn how to search the documents.
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)