Aristarkos/notebooks/arrays.jl

125 lines
3.7 KiB
Julia

### A Pluto.jl notebook ###
# v0.12.21
using Markdown
using InteractiveUtils
# ╔═╡ 460801f2-157a-11eb-3658-9d307bab4389
a = [1, 2, 3]
# ╔═╡ c3fd9566-760c-11eb-2d1c-f3b52fd12e20
md"Vectors need commas; without it's a matrix"
# ╔═╡ 9598a998-170e-11eb-121d-bd32a8b635e8
A = [1 2 3]
# ╔═╡ 99361c56-157a-11eb-358b-052df821fa7a
supertypes(typeof(a))
# ╔═╡ de0fe940-170c-11eb-3d9f-ef06b9e2e5cc
AbstractArray{Int, 1} == AbstractVector{Int}
# ╔═╡ 1c6f0554-170d-11eb-2a68-8781698b424a
AbstractArray{Int, 2} == AbstractMatrix{Int}
# ╔═╡ 64ce9d96-170d-11eb-3ad4-750514d8b1e5
supertypes(Matrix{Int})
# ╔═╡ 6a7549a2-170d-11eb-0c93-956b6767716a
AbstractMatrix{Int} in supertypes(Matrix{Int})
# ╔═╡ e4df20f6-760c-11eb-3f08-eda9ff01a064
md"In Julia vector and scalars are different"
# ╔═╡ af3d6d8a-170d-11eb-090a-6156e3fe68f3
c = 1
# ╔═╡ fcfeba42-170d-11eb-0adf-47738ff9966f
v = [1]
# ╔═╡ a94656e0-170e-11eb-349c-6f67df33b694
M = [1 2; 3 4]
# ╔═╡ d1ea4808-170d-11eb-0da3-85546b4a84cb
typeof(c), typeof(v), typeof(M)
# ╔═╡ ff618b7e-760c-11eb-1d3d-9b2253b2d0ff
md"ndims, size. work like in matlab"
# ╔═╡ e5ac61ae-170e-11eb-3333-2502ddcbe665
ndims(c), ndims(v), ndims(M)
# ╔═╡ f60f9c78-170e-11eb-2153-a3b8da1bc465
size(c), size(v), size(M)
# ╔═╡ 0b554e86-760d-11eb-2e4e-0df801ca24d9
md"`length` is equivalent to Matlab's `numel`, and also works on scalars"
# ╔═╡ cda89e3e-1717-11eb-39d5-fb6f72356405
length(c), length(v), length(M)
# ╔═╡ 04713bc8-170f-11eb-3da7-ddfd3f4d8cfe
# except that size() returns a tuple
typeof(size(M))
# ╔═╡ 8a2a5e40-1712-11eb-0a43-8d18e6f18da4
# indexing an element produces a scalar, contrary to matlab
M[1, 2]
# ╔═╡ b44d27ee-1c66-11eb-17e9-754563299763
# indexing a full row or column always returns a 1 dimensional array
M[1, :]
# ╔═╡ ca9e20b0-1712-11eb-15e0-93bbc100efa0
a[1]
# ╔═╡ 1828dede-760d-11eb-3509-e7395c7da5aa
md"
Difference from matlab: vectors are column vectors by default:
it becomes apparent by transposing (result is two-dimensional)"
# ╔═╡ f4908192-1712-11eb-20d8-97d992c4fc0d
transpose(a)
# ╔═╡ 81e6f900-1717-11eb-03e7-15e486b854d9
#adjoint is
[1+im, 3]' # or (adjoint a)
# ╔═╡ 848dd826-1ba0-11eb-1222-f5b9be57de44
# create an array of undefined elements
ten_integers = Array{Int}(undef, 10)
# ╔═╡ a44f73a2-1ba0-11eb-3199-7703ad587000
# create an array of ten elements initalized to 3
ten_3 = fill(Int32(3), 10)
# ╔═╡ Cell order:
# ╠═460801f2-157a-11eb-3658-9d307bab4389
# ╟─c3fd9566-760c-11eb-2d1c-f3b52fd12e20
# ╠═9598a998-170e-11eb-121d-bd32a8b635e8
# ╠═99361c56-157a-11eb-358b-052df821fa7a
# ╠═de0fe940-170c-11eb-3d9f-ef06b9e2e5cc
# ╠═1c6f0554-170d-11eb-2a68-8781698b424a
# ╠═64ce9d96-170d-11eb-3ad4-750514d8b1e5
# ╠═6a7549a2-170d-11eb-0c93-956b6767716a
# ╟─e4df20f6-760c-11eb-3f08-eda9ff01a064
# ╠═af3d6d8a-170d-11eb-090a-6156e3fe68f3
# ╠═fcfeba42-170d-11eb-0adf-47738ff9966f
# ╠═a94656e0-170e-11eb-349c-6f67df33b694
# ╠═d1ea4808-170d-11eb-0da3-85546b4a84cb
# ╟─ff618b7e-760c-11eb-1d3d-9b2253b2d0ff
# ╠═e5ac61ae-170e-11eb-3333-2502ddcbe665
# ╠═f60f9c78-170e-11eb-2153-a3b8da1bc465
# ╟─0b554e86-760d-11eb-2e4e-0df801ca24d9
# ╠═cda89e3e-1717-11eb-39d5-fb6f72356405
# ╠═04713bc8-170f-11eb-3da7-ddfd3f4d8cfe
# ╠═8a2a5e40-1712-11eb-0a43-8d18e6f18da4
# ╠═b44d27ee-1c66-11eb-17e9-754563299763
# ╠═ca9e20b0-1712-11eb-15e0-93bbc100efa0
# ╟─1828dede-760d-11eb-3509-e7395c7da5aa
# ╠═f4908192-1712-11eb-20d8-97d992c4fc0d
# ╠═81e6f900-1717-11eb-03e7-15e486b854d9
# ╠═848dd826-1ba0-11eb-1222-f5b9be57de44
# ╠═a44f73a2-1ba0-11eb-3199-7703ad587000