You are welcome, if you think this needs some clarification you could try to edit the manual for the good of everyone else!
Cheers. On Thu, Jul 23, 2015 at 8:26 AM, Tero Frondelius <tero.frondel...@gmail.com> wrote: > Thanks, it makes sense now. I actually read the documentation earlier, but > didn't understand it. Now with the example it's very clear. > > > On Thursday, July 23, 2015 at 3:56:39 PM UTC+3, Ismael VC wrote: >> >> help?> @sprintf >> INFO: Loading help data... >> Base.@sprintf("%Fmt", args...) >> >> Return "@printf" formatted output as string. >> >> julia> s = @sprintf "this is a %s" "test" >> "this is a test" >> >> julia> println(s) >> this is a test >> >> That is because `@sprintf` returns a string which you haven't printed. >> >> >> El miércoles, 22 de julio de 2015, 23:31:36 (UTC-5), Tero Frondelius >> escribió: >>> >>> Thanks. My real error was to use @sprintf macro, thus a follow up >>> question, why this isn't printing anything: >>> macro Write(arr) >>> quote >>> for i in $arr >>> @sprintf("%12.6f\n",i) >>> end >>> end >>> end >>> >>> a = 1e5*rand(10) >>> @Write a >>> This is purely for learning purposes. This was simple enough example, >>> which I could try to develop myself. >>> >>> >>> On Thursday, July 23, 2015 at 1:21:04 AM UTC+3, Ismael VC wrote: >>>> >>>> You forgot to interpolate the expression with `$`: >>>> >>>> julia> macro write(arr) >>>> >>>> quote >>>> >>>> for i in $arr >>>> >>>> @printf("%12.6f\n",i) >>>> >>>> end >>>> >>>> end >>>> >>>> end >>>> >>>> >>>> julia> a = 1e5*rand(10) >>>> >>>> 10-element Array{Float64,1}: >>>> >>>> 46310.6 >>>> >>>> 25130.5 >>>> >>>> 30710.8 >>>> >>>> 82089.6 >>>> >>>> 48240.2 >>>> >>>> 80307.5 >>>> >>>> 62870.3 >>>> >>>> 78309.3 >>>> >>>> 63086.6 >>>> >>>> 86144.5 >>>> >>>> >>>> julia> @write a >>>> >>>> 46310.583123 >>>> >>>> 25130.507159 >>>> >>>> 30710.765317 >>>> >>>> 82089.565630 >>>> >>>> 48240.227962 >>>> >>>> 80307.529256 >>>> >>>> 62870.334927 >>>> >>>> 78309.327456 >>>> >>>> 63086.608038 >>>> >>>> 86144.524017 >>>> >>>> >>>> julia> >>>> >>>> But this can be done with anormal function. >>>> >>>> El miércoles, 22 de julio de 2015, 13:37:28 (UTC-5), Tero Frondelius >>>> escribió: >>>>> >>>>> I'm trying to learn macros. Can you help me to get this working? >>>>> Currently the error is that arr is not defined. Probably an obvious >>>>> mistake, but I just don't get hang of it. >>>>> >>>>> macro Write(arr) >>>>> @eval begin >>>>> for i in arr >>>>> @sprintf("%12.6f\n",i) >>>>> end >>>>> end >>>>> end >>>>> >>>>> >>>>> a = 1e5*rand(10) >>>>> @Write a >>>>> >>>>> >>>>> >>>>> On Tuesday, July 14, 2015 at 4:20:43 PM UTC+3, ele...@gmail.com wrote: >>>>>> >>>>>> You could just use a macro to take the format and the array and let >>>>>> it write the "messy" loop for you. >>>>>> >>>>>> On Tuesday, July 14, 2015 at 8:39:44 PM UTC+10, Ferran Mazzanti wrote: >>>>>>> >>>>>>> Yes thanks, I knew already looped solutions :) >>>>>>> I was looking for somethin' compact as in the fortran statement >>>>>>> above, though. It makes things more *neat*, if there's any such thing. >>>>>>> >>>>>>> On Tuesday, July 14, 2015 at 12:08:59 PM UTC+2, Kaj Wiik wrote: >>>>>>>> >>>>>>>> Would this work for you: >>>>>>>> julia> a = 1e5*rand(1000) >>>>>>>> julia> for i in a >>>>>>>> @printf("%12.6f\n", i) >>>>>>>> end >>>>>>>> 74708.038385 >>>>>>>> 71244.774457 >>>>>>>> 5057.229038 >>>>>>>> 3761.297034 >>>>>>>> ... >>>>>>>> >>>>>>>> Remember that loops are fast in Julia... >>>>>>>> >>>>>>>> Kaj >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Tuesday, July 14, 2015 at 9:14:37 AM UTC+3, Ferran Mazzanti >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Thanks for the info. Actually my question comes from old fortran >>>>>>>>> style, where I can write something of the form >>>>>>>>> Write(1,'1000f12.6') a >>>>>>>>> where a is an array. The string inside the write function says I >>>>>>>>> can print 1000 doubkes in 12 characters with 6 decimals. So the >>>>>>>>> string is a >>>>>>>>> constant literal, and array a can contain 1000 or less elements that >>>>>>>>> will >>>>>>>>> be properly formatted. Is there a way to do something like this in >>>>>>>>> Julia? >>>>>>>>> What if Inwant to print 1000 float64 on the same line with a given >>>>>>>>> format for each element? >>>>>>>>> Maybebthis is easier... >>>>>>>>> Best regards and thanks. >>>>>>>>> Ferran. >>>>>>>> >>>>>>>>