jupyter
notebooks; these are installed on our cluster.\n",
"\n",
"This notebook is, in fact, running under an octave
kernel (see in the upper right corner).\n",
"\n",
"As the two environments are almost 100% syntax-compatible, we will always refer to the code as octave
, but almost everything will also be applicable to MATLAB environments."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Matrices and vectors\n",
"\n",
"One of the important quirks of octave
syntax is that its elementary object is a matrix. If in eXtrema
, separate types exist for vectors and matrices, octave
takes the view of vectors being a particular kind of a matrix, with one of the dimensions being of size 1. Thus it distinguishes between column and row vectors and many errors you encounter will likely have to do with failures to keep track and convert between the two types of vectors as appropriate.\n",
"\n",
"Here are a few different ways of creating and manipulating matrices and vectors."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"A =\n",
"\n",
" 1 2 3\n",
" 4 5 6\n",
"\n",
"B =\n",
"\n",
" 0.576952 0.226006 0.473877\n",
" 0.305551 0.433975 0.420620\n",
" 0.234508 0.694907 0.164800\n",
" 0.823089 0.834511 0.029354\n",
"\n",
"I =\n",
"\n",
"Diagonal Matrix\n",
"\n",
" 1 0 0\n",
" 0 1 0\n",
" 0 0 1\n",
"\n",
"Z =\n",
"\n",
" 0 0\n",
" 0 0\n",
"\n"
]
}
],
"source": [
"A = [ 1 2 3; 4 5 6]\n",
"B = rand(4,3)\n",
"I = eye(3)\n",
"Z = zeros(2,2)"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"v =\n",
"\n",
" 1 2 3\n",
"\n",
"ans =\n",
"\n",
" 1\n",
" 2\n",
" 3\n",
"\n",
"w =\n",
"\n",
" 4\n",
" 5\n",
" 6\n",
"\n",
"ans =\n",
"\n",
" 4 5 6\n",
"\n",
"t =\n",
"\n",
" 0\n",
" 0\n",
" 0\n",
"\n",
"s =\n",
"\n",
" 0 0 0 0 0 0 0 0\n",
"\n"
]
}
],
"source": [
"v = [1 2 3]\n",
"v'\n",
"w = [4;5;6]\n",
"w'\n",
"t = zeros(3,1)\n",
"s = zeros(1,8)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ans = 32\n",
"ans = 32\n",
"ans =\n",
"\n",
" 4 10 18\n",
"\n",
"ans =\n",
"\n",
" 4 10 18\n",
"\n",
"ans =\n",
"\n",
" 4 8 12\n",
" 5 10 15\n",
" 6 12 18\n",
"\n",
"ans =\n",
"\n",
" 4 8 12\n",
" 5 10 15\n",
" 6 12 18\n",
"\n",
"ans =\n",
"\n",
" -3 6 -3\n",
"\n",
"ans =\n",
"\n",
" 3\n",
" -6\n",
" 3\n",
"\n",
"warning: cross: taking cross product of column by row\n",
"warning: called from\n",
" cross at line 58 column 7\n",
"ans =\n",
"\n",
" 3\n",
" -6\n",
" 3\n",
"\n"
]
}
],
"source": [
"v*w\n",
"1*4 + 2*5 + 3*6\n",
"v.*w'\n",
"[1*4 2*5 3*6]\n",
"v.*w\n",
"[1*4 2*4 3*4; 1*5 2*5 3*5; 1*6 2*6 3*6]\n",
"cross(v,w')\n",
"cross(w,v')\n",
"cross(w,v)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"system('cp -r /work/5P10/Lectures/octave-tutorial ./');\n",
"\n",
"### if you are NOT on one of our workstations, use the following:\n",
"### -r = --recursive\n",
"### -nH = --no-host-directories\n",
"### -np = --no-parent\n",
"### -R = --reject\n",
"#system('wget -r -nH -np --cut-dirs=3 -R \"index.html*\" http://www.physics.brocku.ca/Courses/5P10/Lectures/octave-tutorial/');"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Elementary operations and interactions with octave\n",
"\n",
"There is no need to reproduce the essential introduction, as it exists:\n",
"\n",
" * a simple tutorial; and\n",
" * a comprehensive Reference Manual.\n",
"\n",
"Students are expected to work through the tutorial on their own, and learn how to use and search the online documentation. octaveBasic must be completed now, other parts of the tutorial will be reviewed later as needed, and completed as homework.\n",
"\n",
"A crucial part for us is the ability to read in, analyze and plot experimentala data. The rest of this notebook is dedicated to learning how to do this."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/home/esternin/5P10\n"
]
}
],
"source": [
"%cd ~/5P10"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Created file '/home/esternin/5P10/VI.dat'.\n"
]
}
],
"source": [
"%%file VI.dat\n",
"# V I,mA\n",
" 0 0.468\n",
" 1 0.405\n",
" 2 0.342\n",
" 3 0.279\n",
" 4 0.216\n",
" 5 0.153\n",
" 6 0.090\n",
" 6.4 0.064"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The basic operation for this simple file is trivial: we know it's a text file, with one header line and two columns of floating-point data:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"V =\r\n",
"\r\n",
" 0.00000\r\n",
" 1.00000\r\n",
" 2.00000\r\n",
" 3.00000\r\n",
" 4.00000\r\n",
" 5.00000\r\n",
" 6.00000\r\n",
" 6.40000\r\n",
"\r\n",
"I =\r\n",
"\r\n",
" 0.468000\r\n",
" 0.405000\r\n",
" 0.342000\r\n",
" 0.279000\r\n",
" 0.216000\r\n",
" 0.153000\r\n",
" 0.090000\r\n",
" 0.064000\r\n",
"\r\n"
]
}
],
"source": [
"[V,I] = textread('VI.dat',\"%f %f\",'headerlines',1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In general, though, octave
has multiple ways of bringing in data, and can deal with a variety of file formats, some highly structured (like spreadheet files, for example). When little is known about the format of the data file, importdata()
is a useful tool. After a little digging through the file structure, the same result can be obtained: two column vectors, V and I."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Variables in the current scope:\n",
"\n",
" Attr Name Size Bytes Class\n",
" ==== ==== ==== ===== ===== \n",
" D 9x1 99 cell\n",
"\n",
"Total is 9 elements using 99 bytes\n",
"\n",
"error: fieldnames: Invalid input argument\n",
"error: called from\n",
" fieldnames at line 60 column 5\n"
]
}
],
"source": [
"D = importdata('VI.dat','',1);\n",
"\n",
"### the file is imported as one unified structure, so \"whos\" yields little insight\n",
"whos D\n",
"### the first step is to identify what is in the structure ...\n",
"fieldnames(D)\n",
"\n",
"#D.textdata\n",
"#D.colheaders\n",
"#D.data\n",
"\n",
"### ... and then follow down to locate and extract the data itself\n",
"#V = D.data(:,1)\n",
"#I = D.data(:,2)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"%plot inline"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ans =\r\n",
"\r\n",
" 0.00000 0.00000\r\n",
" 1.00000 0.40500\r\n",
" 2.00000 0.68400\r\n",
" 3.00000 0.83700\r\n",
" 4.00000 0.86400\r\n",
" 5.00000 0.76500\r\n",
" 6.00000 0.54000\r\n",
" 6.40000 0.40960\r\n",
"\r\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"\n",
" Work your way through the remaining sections of the octave
tutorial.\n",
"
\n",
" Convert one of previously obtained graphs (the analysis of data from VI.dat or Cavendish.dat) from gnuplot
or eXtrema
to octave
. Demonstrate how to display multiple frames (one above or beside the other), annotate your figures clearly to communicate the same information (maximum of power, and the resistance at which this maximum occurs, or the period of oscillations, etc.)."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"hide_input": false,
"kernelspec": {
"display_name": "Octave",
"language": "octave",
"name": "octave"
},
"language_info": {
"file_extension": ".m",
"help_links": [
{
"text": "GNU Octave",
"url": "https://www.gnu.org/software/octave/support.html"
},
{
"text": "Octave Kernel",
"url": "https://github.com/Calysto/octave_kernel"
},
{
"text": "MetaKernel Magics",
"url": "https://metakernel.readthedocs.io/en/latest/source/README.html"
}
],
"mimetype": "text/x-octave",
"name": "octave",
"version": "4.2.2"
},
"toc": {
"nav_menu": {},
"number_sections": false,
"sideBar": true,
"skip_h1_title": false,
"toc_cell": false,
"toc_position": {},
"toc_section_display": "block",
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 2
}