标签: units-of-measurement

将公斤转换为磅和盎司的函数

我想将公斤转换为磅和盎司,例如,如果用户输入 10 公斤,则该函数应返回 22 磅和 0.73 盎司

有任何想法吗?

javascript units-of-measurement

3
推荐指数
1
解决办法
1万
查看次数

度量单位,接口和混合

考虑以下F#代码:

type ILinear =
  interface 
  end

type IMetric =
  interface
  end


[<Measure>] type cm =
    interface ILinear
    interface IMetric 

[<Measure>] type m =
    interface ILinear
    interface IMetric

[<Measure>] type time
Run Code Online (Sandbox Code Playgroud)

我想使用这些接口作为对度量类型进行分组的方法,并且作为允许"任何度量"和"特定度量"之间的一般性级别的方式 - 类似于:

(* Yes, I know this syntax is probably incorrect *)    
let rate (distance:float<'u:#ILinear,#IMetric>) (time:float<time>) =
       distance/time
Run Code Online (Sandbox Code Playgroud)

我意识到这可能会推动可能性的限制,但我只是好奇,如果这是可能的,如果是这样,语法将是什么.正如我所说,这是使用接口作为一个穷人的混合.

f# interface units-of-measurement mixins

3
推荐指数
1
解决办法
381
查看次数

3
推荐指数
1
解决办法
1305
查看次数

与另一单位数量建立计量单位关系

我意识到你可以表达与单位维度的关系,比如

[<Measure>] type cc = cm^3
Run Code Online (Sandbox Code Playgroud)

然后进行有意义的计算.

给定一些度量单位类型,

[<Measure>] type m
Run Code Online (Sandbox Code Playgroud)

是否可以在与另一个单位数量的关系中定义一个单位?例如,

// doesn't compile
[<Measure>] type mm = 0.001<m>

// later
let length = 500.0<mm>
let length2 = 0.5<m>
printfn "%A" (length = length2) // prints true
Run Code Online (Sandbox Code Playgroud)

f# units-of-measurement

3
推荐指数
1
解决办法
120
查看次数

标准库预定义的"用户定义"文字"m"在哪里定义?

我在浏览C++ Core Guidlines文档时偶然发现了以下示例:

change_speed(double s);   // bad: what does s signify?
// ...
change_speed(2.3);
Run Code Online (Sandbox Code Playgroud)

一个更好的方法是明确双重的意义(旧速度的新速度或增量?)和使用的单位:

change_speed(Speed s);    // better: the meaning of s is specified
// ...
change_speed(2.3);        // error: no unit
change_speed(23m / 10s);  // meters per second
Run Code Online (Sandbox Code Playgroud)

我们本可以接受一个普通(无单位)双精度作为delta,但这很容易出错.

关于最后一行代码,在该特定页面上没有提到该语法的含义,它看起来对我来说是陌生的.

经过几个小时的浪费投入搞清楚这可能是一个预定义的"用户定义"文字的标准库,并且更多地了解它们,我试图找出这个特定文字的定义,但是这里提到 's' 和少数几个其他文字,我没有找到关于'm'的信息.

关于SO 还有这个问题,但我认为那里的答案似乎已经完全过时了.

问:标准库预定义的用户定义文字"m"在哪里定义*?


*甜美,甜蜜的头韵.

c++ units-of-measurement c++-standard-library

3
推荐指数
1
解决办法
108
查看次数

与帝国单位合作

我正在玩一个应用程序,粗略地说,这是一种建筑行业的建模应用程序.将来我希望用户可以同时使用SI单位和英制单位.根据我的理解,美国建筑行业习惯于在指定测量时使用几分之一英寸,例如3 1/2英寸 - 而在SI中我们写3.5,而不是3 1/2.我正在寻找一种方法在我的软件中使用这些不同的系统 - 存储它们,对它们进行计算等,不仅解析用户输入的内容.它应该能够以他输入的方式向用户显示测量值,同时能够用其他测量 - 例如增加3厘米到1 1/2英寸.因此,如果用户绘制5英尺长的墙和3米的另一个墙,则应在用户选择的默认单位系统中显示总测量值.

我还没有确定应该为用户输入数据添加多少灵活性; 例如,如果他进入1英尺14英寸,那么下次显示测量值时应该是2英尺2英寸吗?然而,在我决定这样的事情之前,我正在寻找一种以精确的形式存储测量值的方法,这就是我的问题所在.

我正在使用C++,我看过Boost.Units,但这似乎没有提供处理分数的方法.

简单的选择是将所有内容转换为毫米,但舍入错误将导致无法返回到用户输入的精确测量值(如果他在英制测量中输入).所以我需要更复杂的东西.

现在我正在使用一个暂定名为"距离"的类,看起来在概念上如下:

class Distance
{
public:
    Distance(double value);
    // operators +, -, *, /
    Distance operator+(const Distance& that);
    ...etc...

    std::string StringForm(); // Returns a textual form of the value

    Distance operator=(double value);

private:
    <question: what should go here?>
}
Run Code Online (Sandbox Code Playgroud)

这清楚地表明了我的问题所在.最明显的事情是有一个枚举,说明这个距离是存储SI还是英制单位,并且有字段(可能是双倍)存储米,厘米和毫米(如果它是以SI为单位,英尺和英寸)这是帝国的.然而,这将使该类的实现乱丢if(SI)else ...,并且在内存中非常浪费.另外,我必须为脚和英寸存储分子和分母,以便能够精确地存储1/3",例如.

因此,根据我的设计要求,我正在寻找关于如何解决这些问题的一般设计建议.当然,如果有一个已经完成这些事情的C++库,或者我可以看到另一种语言的库来复制概念,那就太好了.

c++ units-of-measurement

2
推荐指数
2
解决办法
3214
查看次数

什么是量子?

我正在试验gamestudio A8,而3d世界中使用的单位是quant.

我的问题是.一米多少量?

我想在sketchup中制作一些模型,然后在那里使用米.我可以将模型转换为mdl.

问题是.动画和移动物体时.我需要知道一米内有多少个数量.

我还希望尺寸与互联网上的其他型号相匹配.

3d units-of-measurement game-engine

2
推荐指数
1
解决办法
475
查看次数

计量单位 - 传入不同单位的重用方法

我有一个名为的方法,RateOfChange它接受两个相隔一秒读取的值,并返回结果.

对于两个位置,它返回速度,对于两个速度,它返回加速度,对于两个能量值,它返回焦耳/秒等.

这在物理上是可行的,但是度量单位不允许我这样做 - 在第一次使用时,该方法与指定类型有关:

let RateOfChangeWithTime (value1, value2) = (value2 - value1) / 1.0<SI.s>

let velocity = RateOfChangeWithTime(2.0<SI.m>, 1.0<SI.m>)
let acceleration = RateOfChangeWithTime(3.0<SI.m/SI.s>, 2.0<SI.m/SI.s>)
Run Code Online (Sandbox Code Playgroud)

该行velocity =导致该方法被约束float<SI.m> -> float<SI.m>/float<SI.s>,当然这对于速度是正确的,但是行acceleration =...然后无法编译,因为它传入float<SI.m/SI.s>的方法不期望.

我希望RateOfChangeWithTime对传入的类型保持不变,但只返回一个除以秒的度量单位.

这似乎更符合真实的现场情况,这可能吗?(我正试图在更复杂的情况下这样做 - 请参阅此处(http://taumuon-jabuka.blogspot.com/2010/11/f-units-of-measure-with-reactive.html)

f# units-of-measurement

2
推荐指数
1
解决办法
185
查看次数

如何匹配相同数据集的lomb-scargle和FFT图?

我正在做一些工作,比较一段时间内某些气体浓度的插值fft,其中不均匀采样,使用相同数据的lomb-scargle周期图.我正在使用scipy的fft函数来计算傅里叶变换,然后将其模数平方以得到我认为的功率谱密度,以十亿分之一(ppb)平方为单位.

我可以得到lomb-scargle图几乎与FFT的精确模式相匹配,但从不相同的幅度,FFT功率谱密度总是更高,即使我认为lomb-scargle功率是功率谱密度.现在我正在使用的lomb代码:http://www.astropython.org/snippet/2010/9/Fast-Lomb-Scargle-algorithm,将数据集标准化,取消平均值并除以数据方差的2倍,因此,我以相同的方式对FFT数据进行了归一化,但幅度仍然不匹配.

因此我做了一些更多的研究,发现标准化的坟墓疤痕能力可以无法完成,因此我不能将这些情节匹配.这引出了我的两个问题:

  1. 什么单位(如果有的话)是标准化的lim-scargle perioogram的功率谱密度?

  2. 在幅度和模式方面,我如何将我的fft情节与我的lomb-scargle情节相匹配?

谢谢.

python psd fft units-of-measurement

2
推荐指数
1
解决办法
2190
查看次数

从 Python 3 中的给定字符串解析测量值(多维)

我知道这篇文章这个库,但他们没有帮助我解决下面的这些具体案例。我如何解析如下测量值:

我有如下字符串;

"Square 10 x 3 x 5 mm"
"Round 23/22; 24,9 x 12,2 x 12,3"
"Square 10x2"
"Straight 10x2mm"
Run Code Online (Sandbox Code Playgroud)

我正在寻找一个 Python 包或某种方式来获得如下结果;

>>> a = amazing_parser.parse("Square 10 x 3 x 5 mm")
>>> print(a)
10 x 3 x 5 mm
Run Code Online (Sandbox Code Playgroud)

同样地;

>>> a = amazing_parser.parse("Round 23/22; 24,9x12,2")
>>> print(a)
24,9 x 12,2
Run Code Online (Sandbox Code Playgroud)

我还尝试使用“ner_ontonotes_bert_mult”模型使用“命名实体识别”。但结果如下:

>>> from deeppavlov import configs, build_model
>>> ner_model = build_model(configs.ner.ner_ontonotes_bert_mult, download=True)
>>> print(ner_model(["Round 23/22; 24,9 x 12,2 x 12,3"]))
<class …
Run Code Online (Sandbox Code Playgroud)

regex parsing units-of-measurement python-3.x ner

2
推荐指数
1
解决办法
455
查看次数