{ "cells": [ { "cell_type": "markdown", "id": "creative-salvation", "metadata": {}, "source": [ "## Object Orientation\n", "\n", "In Julia object orientation is done using structs - same as classes in python, matlab etc.\n", "They are a way of compartmentalising data, for example" ] }, { "cell_type": "code", "execution_count": 1, "id": "nominated-puzzle", "metadata": {}, "outputs": [], "source": [ "struct Dog\n", " name::String\n", " age::Int64\n", " friends::Vector{Dog}\n", "end" ] }, { "cell_type": "markdown", "id": "exciting-transcription", "metadata": {}, "source": [ "To initialise an instance of the struct, in this case a dog:" ] }, { "cell_type": "code", "execution_count": 2, "id": "lucky-commodity", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Dog(\"Kevin\", 1, Dog[])" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dog1 = Dog( \"Kevin\", 1, [] )" ] }, { "cell_type": "code", "execution_count": 3, "id": "acute-belfast", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\"Kevin\"" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dog1.name" ] }, { "cell_type": "code", "execution_count": 4, "id": "turkish-interest", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dog1.age" ] }, { "cell_type": "code", "execution_count": 5, "id": "coated-necklace", "metadata": {}, "outputs": [ { "ename": "LoadError", "evalue": "setfield! immutable struct of type Dog cannot be changed", "output_type": "error", "traceback": [ "setfield! immutable struct of type Dog cannot be changed", "", "Stacktrace:", " [1] setproperty!(x::Dog, f::Symbol, v::Int64)", " @ Base ./Base.jl:34", " [2] top-level scope", " @ In[5]:1", " [3] eval", " @ ./boot.jl:360 [inlined]", " [4] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)", " @ Base ./loading.jl:1116" ] } ], "source": [ "dog1.age = 2" ] }, { "cell_type": "markdown", "id": "ahead-farming", "metadata": {}, "source": [ "Once a field of a struct is set, it can't be changed. This is a design thing in Julia that differs from python, this is due to speed." ] }, { "cell_type": "code", "execution_count": 6, "id": "proprietary-danger", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Dog(\"Anna\", 2, Dog[])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dog2 = Dog( \"Anna\", 2, [] )" ] }, { "cell_type": "code", "execution_count": 7, "id": "selective-perspective", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Dog[]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dog1.friends" ] }, { "cell_type": "code", "execution_count": 8, "id": "aboriginal-difficulty", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1-element Vector{Dog}:\n", " Dog(\"Anna\", 2, Dog[])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "push!( dog1.friends, dog2 )" ] }, { "cell_type": "code", "execution_count": 9, "id": "interpreted-gasoline", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1-element Vector{Dog}:\n", " Dog(\"Anna\", 2, Dog[])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dog1.friends" ] }, { "cell_type": "markdown", "id": "foreign-moscow", "metadata": {}, "source": [ "But note you can push to arrays that are fields of structs. This is because the array is mutable, however" ] }, { "cell_type": "code", "execution_count": 10, "id": "formed-wildlife", "metadata": {}, "outputs": [ { "ename": "LoadError", "evalue": "setfield! immutable struct of type Dog cannot be changed", "output_type": "error", "traceback": [ "setfield! immutable struct of type Dog cannot be changed", "", "Stacktrace:", " [1] setproperty!(x::Dog, f::Symbol, v::Vector{Any})", " @ Base ./Base.jl:34", " [2] top-level scope", " @ In[10]:1", " [3] eval", " @ ./boot.jl:360 [inlined]", " [4] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)", " @ Base ./loading.jl:1116" ] } ], "source": [ "dog1.friends = []" ] }, { "cell_type": "markdown", "id": "descending-target", "metadata": {}, "source": [ "So you can mutate the object that the field is storing if it is mutable but you can't change the field itself.\n", "\n", "It's quite tedious to always have to initialise the empty friend array. You can bypass this by defining the constructor:" ] }, { "cell_type": "code", "execution_count": 11, "id": "bottom-index", "metadata": {}, "outputs": [ { "ename": "LoadError", "evalue": "invalid redefinition of constant Dog", "output_type": "error", "traceback": [ "invalid redefinition of constant Dog", "", "Stacktrace:", " [1] top-level scope", " @ In[11]:1", " [2] eval", " @ ./boot.jl:360 [inlined]", " [3] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)", " @ Base ./loading.jl:1116" ] } ], "source": [ "struct Dog\n", " name::String\n", " age::Int64\n", " friends::Vector{Dog}\n", " Dog( name, age, friends=[] ) = new( name, age )\n", "end" ] }, { "cell_type": "markdown", "id": "continent-diagnosis", "metadata": {}, "source": [ "Note that in Julia you can't redefine structs. You either have to make a new name or restart the kernel to redefine a struct." ] }, { "cell_type": "code", "execution_count": 12, "id": "therapeutic-lodge", "metadata": {}, "outputs": [], "source": [ "struct Dog2\n", " name::String\n", " age::Int64\n", " friends::Vector{Dog2}\n", " Dog2( name, age ) = new( name, age, Vector{Dog2}() )\n", "end" ] }, { "cell_type": "code", "execution_count": 13, "id": "peripheral-warning", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Dog2(\"Kevin\", 1, Dog2[])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dog1 = Dog2( \"Kevin\",1 )" ] }, { "cell_type": "code", "execution_count": 14, "id": "painted-burst", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Dog2[]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dog1.friends" ] }, { "cell_type": "markdown", "id": "precious-timeline", "metadata": {}, "source": [ "So this time it automatically creates a the friends array without us having to input it as an argument." ] }, { "cell_type": "markdown", "id": "basic-boston", "metadata": {}, "source": [ "### Function arguments" ] }, { "cell_type": "markdown", "id": "helpful-central", "metadata": {}, "source": [ "It is common for functions to take in arguments that must be of certain type. Why? Because of efficiency and also sometimes it just makes sense. For example if we have a function multiply, it should take it only numbers, and wouldn't make sense to take in a string or a colour for instance." ] }, { "cell_type": "code", "execution_count": 15, "id": "incorporate-pilot", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "makeFriends! (generic function with 1 method)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function makeFriends!( d1::Dog2, d2::Dog2 )\n", " \n", " push!( d1.friends, d2 );\n", " push!( d2.friends, d1 );\n", " \n", "end" ] }, { "cell_type": "code", "execution_count": 16, "id": "thousand-strap", "metadata": {}, "outputs": [], "source": [ "dog2 = Dog2( \"Anna\",2 );" ] }, { "cell_type": "code", "execution_count": 17, "id": "later-graphic", "metadata": {}, "outputs": [ { "ename": "LoadError", "evalue": "MethodError: no method matching makeFriends!(::Int64, ::Int64)", "output_type": "error", "traceback": [ "MethodError: no method matching makeFriends!(::Int64, ::Int64)", "", "Stacktrace:", " [1] top-level scope", " @ In[17]:1", " [2] eval", " @ ./boot.jl:360 [inlined]", " [3] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)", " @ Base ./loading.jl:1116" ] } ], "source": [ "makeFriends!( 1,2 )" ] }, { "cell_type": "code", "execution_count": 18, "id": "metropolitan-fundamentals", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1-element Vector{Dog2}:\n", " Dog2(\"Kevin\", 1, Dog2[Dog2(\"Anna\", 2, Dog2[#= circular reference @-4 =#])])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "makeFriends!( dog1, dog2 )" ] }, { "cell_type": "markdown", "id": "healthy-measurement", "metadata": {}, "source": [ "So the function only works on the correct types." ] }, { "cell_type": "markdown", "id": "waiting-medicaid", "metadata": {}, "source": [ "### Inheritance/Abstract Classes\n", "\n", "Classes can inherit/be a subclass of a parent class. HOWEVER IN JULIA PARENT CLASSES MUST BE ABSTRACT CLASSES AND NOT CONCRETE CLASSES.\n", "\n", "An abstract class is a class that cannot be instantiated. Dog and Dog2 above are not abstract classes as they can be instantiated." ] }, { "cell_type": "code", "execution_count": 23, "id": "random-musical", "metadata": {}, "outputs": [], "source": [ "abstract type Animal end;\n", "\n", "struct Dog3 <: Animal\n", " name::String\n", " age::Int64\n", " friends::Vector{Animal}\n", " Dog3( name, age ) = new( name, age, Vector{Animal}() )\n", "end\n", "\n", "struct Cat3 <: Animal\n", " name::String\n", " age::Int64\n", " friends::Vector{Animal}\n", " Cat3( name, age ) = new( name, age, Vector{Animal}() )\n", "end" ] }, { "cell_type": "code", "execution_count": 20, "id": "greek-rebound", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Dog3(\"Kevin\", 1, Animal[])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dog1 = Dog3( \"Kevin\", 1 )" ] }, { "cell_type": "code", "execution_count": 21, "id": "proved-yahoo", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "isa( dog1, Dog3 )" ] }, { "cell_type": "code", "execution_count": 24, "id": "interior-palace", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "isa( dog1, Animal )" ] }, { "cell_type": "code", "execution_count": 27, "id": "widespread-desire", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Cat3(\"Steve\", 10, Animal[])" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cat1 = Cat3( \"Steve\", 10 )" ] }, { "cell_type": "markdown", "id": "grand-cooper", "metadata": {}, "source": [ "So here both Dog3 and Cat3 are types of animals. Note you can't actually create an instance of animal as it is an abstract class. Why is this useful?" ] }, { "cell_type": "code", "execution_count": 25, "id": "banned-cooper", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "makeFriends! (generic function with 2 methods)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function makeFriends!( a1::Animal, a2::Animal )\n", " \n", " push!( a1.friends, a2 );\n", " push!( a2.friends, a1 );\n", " \n", "end" ] }, { "cell_type": "code", "execution_count": 28, "id": "finnish-cooperation", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1-element Vector{Animal}:\n", " Dog3(\"Kevin\", 1, Animal[Cat3(\"Steve\", 10, Animal[#= circular reference @-4 =#])])" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "makeFriends!( dog1, cat1 )" ] }, { "cell_type": "markdown", "id": "lightweight-hearts", "metadata": {}, "source": [ "It means for these functions you can actually act on more than one type." ] }, { "cell_type": "code", "execution_count": 29, "id": "supreme-wagner", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1-element Vector{Animal}:\n", " Dog3(\"Kevin\", 1, Animal[Cat3(\"Steve\", 10, Animal[#= circular reference @-4 =#])])" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cat1.friends" ] }, { "cell_type": "markdown", "id": "exempt-settle", "metadata": {}, "source": [ "### Overloading Operators\n", "\n", "It is possible to redefine Julia built in functions to work on your own types too. This is called overloading" ] }, { "cell_type": "code", "execution_count": 42, "id": "statistical-marble", "metadata": {}, "outputs": [], "source": [ "function Base.show(io::IO, a::Animal)\n", " print(\"Name: \", a.name, \", Age: \", a.age, \", Number of friends: \", length(a.friends) )\n", "end" ] }, { "cell_type": "code", "execution_count": 39, "id": "identified-retailer", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Name: Kevin, Age: 1, Number of friends: 1\n" ] } ], "source": [ "println( dog1 )" ] }, { "cell_type": "markdown", "id": "basic-registrar", "metadata": {}, "source": [ "To do it you just write Base.(some function name) and redefine what you want it to do. Here's another example" ] }, { "cell_type": "code", "execution_count": 40, "id": "closing-price", "metadata": {}, "outputs": [], "source": [ "function Base.:+( a1::Animal, a2::Animal )\n", " if a1.age > a2.age\n", " return a1\n", " end\n", " return a2\n", "end" ] }, { "cell_type": "code", "execution_count": 41, "id": "forty-criterion", "metadata": {}, "outputs": [ { "data": { "text/plain": [] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" }, { "name": "stdout", "output_type": "stream", "text": [ "Name: Steve, Age: 10, Number of friends: 1" ] } ], "source": [ "dog1 + cat1" ] }, { "cell_type": "markdown", "id": "guilty-unemployment", "metadata": {}, "source": [ "So I have defined add on animals to return the older one. Note for the binary operators you need the colon before it." ] }, { "cell_type": "markdown", "id": "domestic-ivory", "metadata": {}, "source": [ "## Filtering\n", "\n", "Filtering is a way to reduce noise in input data (it actually has lots of other uses as well, for example in PDEs, optics, .... a very long list). The idea is that if we have some sort of error, we can hope that the error is not overly biased, meaning that if we sum all the errors up it should be some predictable value (like 0). So by taking various averages of our input data, we can hopefully smooth out the error." ] }, { "cell_type": "code", "execution_count": 43, "id": "false-switzerland", "metadata": {}, "outputs": [], "source": [ "using PyPlot" ] }, { "cell_type": "code", "execution_count": 69, "id": "earlier-comparative", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "xpts = LinRange( -1,1,40 )\n", "ypts = [ sin(x*pi) for x in xpts ]\n", "\n", "plot( xpts, ypts );\n", "plot( xpts, ypts );" ] }, { "cell_type": "code", "execution_count": 70, "id": "continuing-emphasis", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "strength = 0.1;\n", "data = ypts .+ 0.0;\n", "data[2:end-1] += 2.0*(rand( 38 ).-0.5)*strength;\n", "plot( xpts, data );\n", "plot( xpts, ypts );" ] }, { "cell_type": "markdown", "id": "different-shape", "metadata": {}, "source": [ "Let's now apply the mean filter by taking the mean of each point and it's neighbours:" ] }, { "cell_type": "code", "execution_count": 64, "id": "dangerous-myrtle", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "meanFilter (generic function with 1 method)" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function meanFilter( data )\n", " \n", " ndata = [ data[1] ]\n", " for ii = 2:length(data)-1\n", " push!( ndata, ( data[ii-1]+data[ii]+data[ii+1] ) / 3 )\n", " end\n", " push!( ndata, data[end] )\n", " return ndata\n", " \n", "end" ] }, { "cell_type": "code", "execution_count": 66, "id": "common-flooring", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "meandata = meanFilter( data );\n", "plot( xpts, meandata );\n", "plot( xpts, ypts );" ] }, { "cell_type": "markdown", "id": "current-excess", "metadata": {}, "source": [ "So it's clearly better. You can actually filter again:" ] }, { "cell_type": "code", "execution_count": 68, "id": "closed-heading", "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "meandata = meanFilter( meandata );\n", "meandata = meanFilter( meandata );\n", "plot( xpts, meandata );\n", "plot( xpts, ypts );" ] }, { "cell_type": "markdown", "id": "subsequent-receipt", "metadata": {}, "source": [ "Will it ever be perfect? Of course not in general, as if we have really bad noise, we can't really expect it to give us the exact answer back. But it can give us data that is smooth enough in general that it is workable." ] }, { "cell_type": "markdown", "id": "accessible-blink", "metadata": {}, "source": [ "A final note - there are way better filters than this in real life of course. They can filter out different things like high frequencies, low frequencies, or even specific ones. This is useful when for example you know your channel adds noise of a specific range of frequencies which is how most things in the real world work." ] }, { "cell_type": "markdown", "id": "headed-bibliography", "metadata": {}, "source": [ "This is way out of scope for this course - but if you are interested feel free to come ask me. It is also a very active area of research so there is plenty to read about/investigate if you are interested!" ] }, { "cell_type": "code", "execution_count": null, "id": "premium-brooklyn", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Julia 1.6.2", "language": "julia", "name": "julia-1.6" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.6.2" } }, "nbformat": 4, "nbformat_minor": 5 }