Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
FirstSteps.jl 2.98 KiB
"""
Setting a working directory with abc
"""
cd("/home/Wherever/You/Want") # Linux
cd("C:\\Users\\Nickname\\Just\\put\\it\\there") # Windows
"""
Show the working directory
"""
pwd()

"""
Save your files with a .jl to make atom recognize that its Julia
and make the colour formatting appear
"""

"""
Documentation
Any string appearing at the top-level right before an object
is interpreted as documentation (Markdown)
"""
# This is a comment :)

"""
type ? in the REPL to switch to the help menu
type ; in the REPL to switch to the shell
type ] in the REPL to switch to the package management
    ]st     # status of the packages
    ]update
    ]add "Plots"

or you can do it like this
"""
import Pkg
Pkg.add("StatsBase") # add the package
using StatsBase # load the package

Pkg.add("Distributions") # add the package
using Distributions # load the package

"""
The define operator is =
To use the unicode math symbols (e.g. Greek) type \alpha and press Tab
You cannot redefine a built-in constant or function
"""
pi
a,b,c = 1,2,3
x = 3
z = x + a
z1 = 2x^2 - 3x + 1
z2 = 2^2x
x += 1
d = rand() # choose a random number between 0 and 1
# randn(10) 10 random numbers- normal distributed

### "===" compare the number and the type of a variable

"""
Define an array
"""
a = [x,y,z] #Array
b = rand(1:10,6)
b = rand(2,2) #2×2 Array{Float64,2}
a = Array{Float64,1} # Array{T,N} N-dimensional dense array with elements of type T.
# N can be Any, Float64, Int64, String
# T can be 1 - Vector, 2 - Matrix, 3 - Array
c = Vector{Float64}(undef,6) # create a vector with random numbers (undefined, row, column)
c = fill!(c,3)
d = fill(rand(1:10), (5,5))

g = [1:10;] #create a vector
g[9] = -9 # change number at pos. 9
g[3:5] = fill!(g[3:5], -8)

print(g)
length(g)
size(b)
println("text"^2)

"""
Arithmetic Operators
(+) (-) (/) (*) (^) (%) (\)
For every binary operation there is a "dot"-operation that
    automatically performs element-by-element on arrays
"""
x = 3
-x #mathematical inverse
+x
y % x # remainder
x += 3 # is like x = x + 3
+(1,2,3)
*(1,2,3,4)
a = [1,2,3]
b = a .+ 1
c = a .^2

"""
build-in mathematical functions
"""
Random.seed!(123) # Setting the seed; using Random, Distributions
d = Normal() #Normal distribution std=1
x = rand(d,2)

g = [1,2,3,4,5,6,7,8,9]
sum(g)
mean(g) # in the Pkg StatsBase
maximum(g)
extrema(g)

"""
- Numeric comparison
- (==) (!=) (<=) ...
"""
x = 3
x < 5 ? "yes" : "no"
x = 7
x < 5 ? "yes" : "no"

# Boolean operators
x > 5 && "Cool!"
x < 5 && "Cool!"
x > 5 || "Cool!"
x < 5 || "Cool!"

# Loop and if-else statments
for i in 1:length(g)
  println("Hallo World ($i)"^2)
end

name = "Brinkley"
if name == "Jeeves"
    println("Very Good Jeeves")
elseif name == "Brinkley"
    println("Thank you, Brinkley")
    println("and shut the door behind you")
else
    println("Fine, just ignore me")
end

"""
functions in julia
"""
# one-line function
myfunc(value) = 20*value
myfunc(20)
# more complicated functions
function First(x, y)
    x + y
end
First(3,4)

function Sec(x, y)
    return x*y
    x + y
end
Sec(3,4)