2016-08-07 8 views
6

私は印刷したい配列または行列を持っていますが、3桁の精度しかありません。それ、どうやったら出来るの。私は次のことを試みた。juliaで浮動小数点配列を印刷するフォーマットを指定するにはどうすればよいですか?

> @printf("%.3f", rand()) 
0.742 

> @printf("%.3f", rand(3)) 
LoadError: TypeError: non-boolean (Array{Bool,1}) used in boolean context 
while loading In[13], in expression starting on line 1 

アップデートは:理想的には、私はちょうど、さらに私の配列または行列を処理することなく、printx("{.3f}", rand(m, n))ような関数を呼び出したいです。

答えて

2

これはいかがですか?

julia> print(round(rand(3),3)) 
[0.188,0.202,0.237] 
3

期待通りに@printfが引数のリストを受け入れるとは思いません。

@sprintfを使用して書式設定された文字列を作成することもできますが、リスト内でそれらを収集することもできます。あなたはそのようにのように一緒にそれらを連結する結合を使用する場合があります

join([@sprintf "%3.2f" x for x in rand(3)], ", ") 
4

私はそれをこのようにします:

julia> map(x -> @sprintf("%.3f",x), rand(3)) 
3-element Array{String,1}: 
"0.471" 
"0.252" 
"0.090" 
関連する問題