在这次新的冒险中,我需要尽快填充这个矩阵。 所以在我看来,我需要做的变量是:
for ($r = 0 ; $r -lt 5 ; $r++){
new-variable r$r
for ($i = 0 ; $i -lt 5 ; $i++){
$rand = Get-Random -Minimum 0 -Maximum 50
r$r += "$rand,"
}
}
但它不起作用,它告诉我r0
>不是已知的cmdlet。
这应该创建r0 ... r4变量,这意味着row0 ... row4,每个rn将填充一个随机数后跟一个逗号。
怎么做?
和...
我真的不知道我是不是以正确的方式做我的矩阵,但这就是我现在所拥有的:
$r1 = ""
for ($i = 0 ; $i -lt 4 ; $i++){
$rand = Get-Random -Minimum 0 -Maximum 50
$r1 += "$rand,"
}
$r1 = $r1.Replace(" ",",")
$r1 = $r1.TrimEnd(',')
# Write-Host $r1
$r2 = ""
for ($i = 0 ; $i -lt 4 ; $i++){
$rand = Get-Random -Minimum 0 -Maximum 50
$r2 += "$rand,"
}
$r2 = $r2.Replace(" ",",")
$r2 = $r2.TrimEnd(',')
# Write-Host $r2
$matrix = @(($r1),($r2))
foreach ($g in $matrix) {$g}
答案 0 :(得分:1)
仅仅因为你other question我建立了这个来输出矩阵块中的随机数。它使用$width
和$height
来定义$theMatrix
的大小,该大小是作为字符串数组的数组构建的。
$width = 4
$height = 5
$theMatrix = @()
For($heightIndex = 1;$heightIndex -le $height;$heightIndex++){
$theMatrix += ,@(1..$width | ForEach-Object{([string](Get-Random -Minimum 0 -Maximum 50)).PadLeft(2)})
}
$theMatrix | ForEach-Object{$_ -Join "|"}
这将构建一个随机数矩阵。我认为这在视觉上很重要,所以我将数字转换为字符串,以便在遇到单个数字时可以使用PadLeft
以使输出看起来更清晰。最后使用$_ -Join "|"
以可读的形式显示矩阵。随意将分隔符更改为逗号或其他内容。
示例输出
1|27|23|20
29|10|25|21
31|37| 9|27
11|36|34|48
43|42|35| 9
答案 1 :(得分:0)
以这种方式尝试:
$r =
for ($i = 0 ; $i -lt 5 ; $i++){
Get-Random -Minimum 0 -Maximum 50
}
答案 2 :(得分:0)
正如我认为Mjolinor钉牢它一样。
这将创建一些名为$ r0到$ r4的动态变量,这些变量将包含随机整数数组。
for ($r = 0 ; $r -lt 5 ; $r++){
new-variable r${r} -Value @()
$myDynVariable = get-variable r${r}
for ($i = 0 ; $i -lt 5 ; $i++){
$rand = Get-Random -Minimum 0 -Maximum 50
$myDynVariable.Value += $rand
}
}
一些结果:
$r0
24
44
23
19
32
$r1
40
12
40
28
15
$r2
41
25
19
42
5
$r3
49
43
29
15
6
$r4
32
48
22
9
4