Jump to content

array in array


FMS
 Share

Recommended Posts

@RTFC thnx for the reply but do you have an example of what you mean? (I couldn't find some example in the help)
Your explanation is a little to technical for me I must say :sweating:

Also do you know when then next version will be released?

edit: I want to retain the valeu so I'm not looking into ConditMask

Edited by FMS

as finishing touch god created the dutch

Link to comment
Share on other sites

  • Replies 45
  • Created
  • Last Reply

Top Posters In This Topic

$matR = _Eigen_ConditScalarOp ( $matA, "<", 0, "replace", 0 )
$matR = _Eigen_ConditScalarOp ( $matA, ">", 1, "replace", 1 )

Or in-place:

_Eigen_ConditScalarOp_InPlace ( $matA, "<", 0, "replace", 0 )
_Eigen_ConditScalarOp_InPlace ( $matA, ">", 1, "replace", 1 )

E4A v4.3 will probably be released in about one month, but it all depends on getting some new functionality up and running. Stay tuned...;)

Edited by RTFC
Link to comment
Share on other sites

@RTFC thanks for the example.
now I know (a little) what you mean.

Curently I'm looking at "rounding" digits in a matrix.
I think that I need the Global $EIGEN_DECIMALS for this but don't know how to change and whish function I need for this.
(or if it's smart to change this)
 

Do you have also an "good habits" example in rounding digits in an matrix?
Or is this not possible whit E4A?

for example :
in 1 matrix I want to round 1,2578 to 1,26
And afther that I want to change another matrix -3,654629 to -3,6546

 

as finishing touch god created the dutch

Link to comment
Share on other sites

You may wish to spend some time studying Eigen's own documentation on Cwise functions. The E4A UDF library ports most of these (for dense (non-sparse) matrices at least) to AutoIt. As Eigen does not provide decimal control in its three rounding functions, neither does E4A.

Tinkering with $EIGEN_DECIMALS is not the solution, as this controls representation, not content. Internally, storage is either at integer, single, or double precision. How many decimals are accurately captured (in the latter two types) depends on how far the values are from zero (the further away, the larger the gaps become between exactly representable true values).

Instead, you can achieve what you want in a few simple steps, given desired number of decimals <d>:

  • CwiseScalarOp multiply your values by 10^d
  • CwiseScalarOp Add 0.5
  • CwiseUnaryOp floor()
  • CwiseScalarOp divide by 10^d

You should be sufficiently proficient in E4A by now to figure out how to translate these steps into the actual E4A calls.

 

 

Link to comment
Share on other sites

Quote

Instead, you can achieve what you want in a few simple steps, given desired number of decimals <d>:

Thanks @RTFC , I think I've it under control :)

Is there by any chanse a function inside E4A to control the output's of an calculation?
In some cases I get an output of "2e-005" instead of "0.000002" ?
I realy need the real numbers instead of the mathematical notation :)
I haven't found something in the help files about this (or i look in the wrong direction :) )

as finishing touch god created the dutch

Link to comment
Share on other sites

Again, there's a difference between representation (what you see on screen) and content (stored binary value, at single or double precision). Any code that needs to evaluate/calculate with the values themselves uses the latter; if you need to display stuff for the user in a specific format, AutoIt's StringFormat() function is your friend. If storing matrices as ASCII, the Matrix File Converter has options (radio buttons) to force scientific notation or "number strings" like you want. But you cannot tell E4A to use 0.000002 instead of 2e-006, because neither format is used in actual storage/calculations; all values are represented in binary, making the distinction meaningless.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...