2016-08-07 9 views
6

Mam macierz lub macierz, którą chcę wydrukować, ale tylko z trzema cyframi precyzji. Jak mogę to zrobić. Próbowałem następujących rzeczy.Jak określić format drukowania tablicy Floats w 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 

Aktualizacja: Idealnie, po prostu chcę, aby wywołać funkcję jak printx("{.3f}", rand(m, n)) bez konieczności dalszego przetwarzania moją tablicę lub macierz.

Odpowiedz

2

Co powiesz na to?

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

Nie sądzę, że @printf akceptuje listę argumentów, jak można się spodziewać.

Jedno z rozwiązań, które można wypróbować, aby użyć @sprintf do utworzenia sformatowanych łańcuchów, ale zebrać je ze zrozumieniem listy. Można wtedy użyć dołączyć je złączyć razem tak:

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

chciałbym zrobić to w ten sposób:

julia> map(x -> @sprintf("%.3f",x), rand(3)) 
3-element Array{String,1}: 
"0.471" 
"0.252" 
"0.090" 
Powiązane problemy