59 lines
1.1 KiB
Plaintext
59 lines
1.1 KiB
Plaintext
function transpose($a) {
|
|
$arr = @()
|
|
if($a) {
|
|
$n = $a.count - 1
|
|
if(0 -lt $n) {
|
|
$m = ($a | foreach {$_.count} | measure-object -Minimum).Minimum - 1
|
|
if( 0 -le $m) {
|
|
if (0 -lt $m) {
|
|
$arr =@(0)*($m+1)
|
|
foreach($i in 0..$m) {
|
|
$arr[$i] = foreach($j in 0..$n) {@($a[$j][$i])}
|
|
}
|
|
} else {$arr = foreach($row in $a) {$row[0]}}
|
|
}
|
|
} else {$arr = $a}
|
|
}
|
|
$arr
|
|
}
|
|
function show($a) {
|
|
if($a) {
|
|
0..($a.Count - 1) | foreach{ if($a[$_]){"$($a[$_])"}else{""} }
|
|
}
|
|
}
|
|
|
|
$a = @(@(2, 0, 7, 8),@(3, 5, 9, 1),@(4, 1, 6, 3))
|
|
"`$a ="
|
|
show $a
|
|
""
|
|
"transpose `$a ="
|
|
show (transpose $a)
|
|
""
|
|
$a = @(1)
|
|
"`$a ="
|
|
show $a
|
|
""
|
|
"transpose `$a ="
|
|
show (transpose $a)
|
|
""
|
|
"`$a ="
|
|
$a = @(1,2,3)
|
|
show $a
|
|
""
|
|
"transpose `$a ="
|
|
"$(transpose $a)"
|
|
""
|
|
"`$a ="
|
|
$a = @(@(4,7,8),@(1),@(2,3))
|
|
show $a
|
|
""
|
|
"transpose `$a ="
|
|
"$(transpose $a)"
|
|
""
|
|
"`$a ="
|
|
$a = @(@(4,7,8),@(1,5,9,0),@(2,3))
|
|
show $a
|
|
""
|
|
"transpose `$a ="
|
|
show (transpose $a)
|