我々は持っている二つの配列簡単な方法[、] intに[] [] F#で
let a = [| [|1|] |]
と
let a' = Array2D.init 1 1 (fun x y -> 1)
最初戻る[] [] INTと第INT [、]
int [、]をint [] []に変換する簡単な方法はありますか?
我々は持っている二つの配列簡単な方法[、] intに[] [] F#で
let a = [| [|1|] |]
と
let a' = Array2D.init 1 1 (fun x y -> 1)
最初戻る[] [] INTと第INT [、]
int [、]をint [] []に変換する簡単な方法はありますか?
これを行うための組み込み関数はありません。リストの理解の構文を使用すると、わかりやすくなります。
let a =
[| for i in 0..(Array2D.length1 a' - 1) ->
[| for j in 0..(Array2D.length2 a' - 1) -> a'.[i,j] |] |]
注意すべき点は基本インデックスです。あなたの例では、配列はゼロベースなので、コードを短くするためにゼロを使用します。しかし、非ゼロベースの配列の場合をサポートする必要がある場合は、代わりにa'.[ i + Array2D.base1 a', j + Array2D.base2 a' ]
を実行する必要があります。エレガントではありませんが、腕時計です。
それはあなたが興味のある配列の建物だ場合、あなたは2 Array.init
などを使用することにより[][]
(別名ジャグ配列)の形を構築することができます
[|[|0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19|]; [|1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20|]; [|2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17; 18; 19; 20; 21|];
Array.init 10 (fun r -> Array.init 20 (fun c -> (c+r)))
その、Array2D.length秒-1のカップルを追加し、あなたは正しいです。私はIndexOutOfRangeExceptionを取得します。回答ありがとうございました –
良いキャッチです。申し訳ありませんが、私は電話から書いていましたが、コードを確認できませんでした。 –