簡體   English   中英

Perl PDL 是否有辦法通過在另一個向量中給出的最小/最大值來鉗制一個向量而不進行迭代?

[英]Does Perl PDL have a way to clamp a vector by min/max values given in another vector without iterating?

PDL是否已經有辦法將向量元素“鉗制”到另一個向量中給出的最小/最大值? 我瀏覽了PDL::Math文檔,但沒有看到一個好的候選選項。

我可以 unpdl/re-pdl但這似乎開銷太大。

是否已經有一種矢量化的方式來做到這一點?

我試過這樣的事情:

$pdl = pdl [4.45, 5.55, 45];
$max = pdl [2   , 3,    50];
print ( (($max <=> $pdl) > 0)*$pdl + (($max <=> $pdl) < 0)*$max ) 
[2 3 45]

這似乎有效,但這是多么瘋狂的表達。 有內置的嗎?

PDL::Primitive::hclip是為此:

pdl> $pdl = pdl [4.45, 5.55, 45];
pdl> $max = pdl [2   , 3,    50];
pdl> p $pdl->hclip($max)
[2 3 45]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM