powershell中有没有一种方法可以将正数转换为负数,而不使用乘法?

powershell中有没有一种方法可以将正数转换为负数,而不使用乘法?,powershell,negative-number,Powershell,Negative Number,我想知道是否有一种方法可以让正数变成负数,而不用像$b=$a*-1 我在寻找最合算的方式,因为我会在剧本中多次这样做 -编辑 此时,我正在使用它,但从计算角度看,它的成本非常高: $temp_array = New-Object 'object[,]' $this.row,$this.col for ($i=0;$i -le $this.row -1 ; $i++) { for ($j=0;$j -le $this.col -1 ; $j++) {

我想知道是否有一种方法可以让正数变成负数,而不用像
$b=$a*-1

我在寻找最合算的方式,因为我会在剧本中多次这样做

-编辑 此时,我正在使用它,但从计算角度看,它的成本非常高:

    $temp_array = New-Object 'object[,]' $this.row,$this.col

    for ($i=0;$i -le $this.row -1 ; $i++) {
        for ($j=0;$j -le $this.col -1 ; $j++) {
            $digit = $this.data[$i,$j] * -1
            $temp_array[$i,$j] = 1 / ( 1 + [math]::exp( $digit ) )
            #[math]::Round( $digit ,3)
        }
    }
    $this.data = $temp_array

要无条件地将正数转换为负数(或者更一般地说,翻转数字的符号),只需使用一元运算符
-

 PS> $v = 10; -$v
 -10
适用于您的情况:

 $digit = -$this.data[$i,$j]

顺便说一句:如果性能很重要,您可以通过使用范围表达式来创建要迭代的索引,从而加快循环速度,尽管这样做的代价是内存消耗:

$temp_array = New-Object 'object[,]' $this.row,$this.col

for ($i in 0..($this.row-1)) {
    for ($j in 0..($this.col-1)) {
        $digit = - $this.data[$i,$j]
        $temp_array[$i,$j] = 1 / ( 1 + [math]::exp( $digit ) )
    }
}
$this.data = $temp_array

我想到了几个方法,你所说的“成本合理”是什么意思?为什么你不能使用乘法?$A=-1$a=[数学]::abs($a)你能列举一个你正在使用的输入的例子吗。比如$This.row和$This,col是什么样的?$This.row和$This.col是矩阵的边界。