Obtenir une liste des variables actuelles dans Julia Lang

Je suis nouvelle à Julia Lang. Je viens de L'arrière-plan de Matlab.

Dans Matlab, lorsque vous appuyez sur whos commande j'obtiendrai toutes les variables dans le champ courant; et aussi, je peux les stocker dans une autre variable comme <!-Y a-t-il de telles commandes dans Julia? Exemple de code dans Matlab:

>> a=3;
>> b=4;
>> whos
Variables in the current scope:

Attr Name        Size                     Bytes  Class
==== ====        ====                     =====  ===== 
    a            1x1                          8  double
    b            1x1                          8  double
    prefix       1x16                        16  char

Total is 18 elements using 32 bytes.
38
demandé sur Unheilig 2014-01-23 11:00:25

3 réponses

Je ne sais pas s'il y a quelque chose de mieux, mais

names(Main)[4:end]

semble fonctionner. [4:end] partie est parce qu'il comprend :Main, :Core et :Base je pense que vous ne voulez pas. J'espère qu'ils seront toujours au début.

10
répondu ivarne 2014-01-23 09:31:18

vous pouvez utiliser Julia whos fonctionne comme la commande Matlab.

julia> whos()
Base                          Module
Core                          Module
Main                          Module
ans                           Nothing

julia> x = 5
5

julia> whos()
Base                          Module
Core                          Module
Main                          Module
ans                           Int64
x                             Int64

tous les modules (packages/libraries) que vous importez dans votre portée locale (en utilisant using) va apparaître dans la liste (comme Module s, comme Base, Core, et Main ci-dessus).

en outre, vous pouvez demander des noms exportés par Modules. Base est le module contenant la bibliothèque standard.

julia> whos(Base)
!                             Function
!=                            Function
!==                           Function
$                             Function
%                             Function
&                             Function
*                             Function
+                             Function
.... (lots and lots more)

considérant que ce résultat sort de mon écran, vous pouvez comprendre pourquoi vous voulez filtrer les résultats. Pour cela, vous pouvez utiliser Regexes. (Pour plus d'informations sur les regexes de Julia, voir cette section du manuel)

julia> whos(r"M")
Main                          Module

julia> whos(Base, r"Match"i)
DimensionMismatch             DataType
RegexMatch                    DataType
each_match                    Function
eachmatch                     Function
ismatch                       Function
match                         Function
matchall                      Function

je n'étais pas au courant de l' whos fonction avant de vous l'a demandé, donc merci de m'aider à apprendre quelque chose de nouveau. :)

Julia question n ° 3393 sur github est sur l'ajout de capacités de mémoire à l' whos sortie. Il fait aussi référence à faire whos retourner une valeur plutôt que de simplement imprimer de l'information.

36
répondu astrieanna 2014-01-24 19:42:53

Une Mise À Jour:

whos() 

... ne fonctionne ni à iJulia ni à L'invite de commande à Julia-1.0.0.

C'est le travail en Julia-0.6.4.

d'autre part,

varinfo()

....imprime des informations sur les variables globales exportées dans un module. Par Exemple,

julia-1.0> varinfo()
name                    size summary                        
–––––––––––––––– ––––––––––– –––––––––––––––––––––––––––––––
Base                         Module                         
Core                         Module                         
InteractiveUtils 154.271 KiB Module                         
Main                         Module                         
PyPlot           781.872 KiB Module                         
ans               50.323 KiB Plots.Plot{Plots.PyPlotBackend}
myrepl               0 bytes typeof(myrepl)                 
x                   88 bytes 1×6 Array{Int64,2}             
y                    0 bytes typeof(y)                      

l'Espoir, c'est jugée utile.

2
répondu Long short 2018-09-12 13:20:06