Spyke

Syndicated from the fediverse. Read and engage on the original instance.

View original on lemmy.kde.social
opensource·Open Sourcebytubbadu

Is it possible to do calculations with GNU Octave using measuring units?

Hello! In qalc I can do calculations using measuring units like this:

> 5 W * 3 s

  (5 watts) × (3 seconds) = 15 J

I'd like to be able to do something similar also in GNU Octave. I think the symbolic library could be a place to look at, but I found nothing "already done". Do any of you know of a way to achieve this functionality?

View original on lemmy.kde.social
24

9 replies

tubbadureply
lemmy.kde.social

It looks interesting, but more focused on conversions than actual operations it seems:

octave:37> a.value = 100
a =

  scalar structure containing the fields:

    value = 100
    unit = W

octave:38> a.unit = 'W'
a =

  scalar structure containing the fields:

    value = 100
    unit = W

octave:39> b.value = 3
b =

  scalar structure containing the fields:

    value = 3
    unit = s

octave:40> b.unit = 's'
b =

  scalar structure containing the fields:

    value = 3
    unit = s

octave:41> a*b
error: binary operator '*' not implemented for 'scalar struct' by 'scalar struct' operations
3

This looks very VERY promising! I'll try to install it tomorrow and Post here the results! Thanks?

4
tubbadureply
lemmy.kde.social

I downloaded it and tried to run it, but it gets stuck in a loop and I don't know how it could be fixed:

error: max_recursion_depth exceeded
error: called from
    baseUnitSystem
    <unknown>

it seems the problem is in the line

coreUnits = buildCoreUnits(u.baseUnitSystem);

in the file u.m, I think because u.baseUnitSystem tries to "call itself". I don't know what this should be supposed to do, and have no idea on how to possibly fix it :(

2
feddit.de

With symbolic variables J, s and W, the Ws won't be converted to J automatically.

1

automatically no, but perhaps there's a way to replace it. If there's a way to check if a variable is "divisible by another symbolic one" then it would be not so hard to implement this behavior

2

You reached the end

Is it possible to do calculations with GNU Octave using measuring units? | Spyke