Begin Matlab with TCLab
Main.BeginMatlab History
Hide minor edits - Show changes to markup
The course is designed to start from no programming experience and guide a self-paced learner through the basics of Matlab. The 12 modules are run from Matlab, Octave, or the Jupyter Notebooks. Any of them can serve as the Integrated Development Environment (IDE) but the Jupyter notebooks are used for all instructionals videos. The tutorials start with how to install all of the software and use the hands-on lab kit. The exercises are interactive and there are solution videos for each module if you need additional help.
The course is designed to start from no programming experience and guide a self-paced learner through the basics of Matlab. The 12 modules are run from Matlab, Octave, or the Jupyter Notebooks. Any of them can serve as the Integrated Development Environment (IDE) but the Jupyter notebooks are used for all instructional videos. The tutorials start with how to install all of the software and use the hands-on lab kit. The exercises are interactive and there are solution videos for each module if you need additional help.
<iframe width="560" height="315" src="https://www.youtube.com/embed/RP6pgUk0Fkk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/V8ik7X6I1Sk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</td><td>Introduction </td><td>Introduction
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/00.%20Introduction.ipynb'>Introduction</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/00.%20Introduction.ipynb'>Introduction</a>
</td><td>Overview </td><td>Overview
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/01.%20Overview.ipynb'>Overview</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/01.%20Overview.ipynb'>Overview</a>
</td><td>Debugging </td><td>Debugging
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/02.%20Debugging.ipynb'>Debugging</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/02.%20Debugging.ipynb'>Debugging</a>
</td><td>Variables </td><td>Variables
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/03.%20Variables.ipynb'>Variables</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/03.%20Variables.ipynb'>Variables</a>
</td><td>Printing </td><td>Printing
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/04.%20Printing.ipynb'>Printing</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/04.%20Printing.ipynb'>Printing</a>
</td><td>Arduino </td><td>Arduino
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/05.%20Arduino.ipynb'>Arduino</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/05.%20Arduino.ipynb'>Arduino</a>
</td><td>Functions </td><td>Functions
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/06.%20Functions.ipynb'>Functions</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/06.%20Functions.ipynb'>Functions</a>
</td><td>Loops </td><td>Loops
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/07.%20Loops.ipynb'>Loops</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/07.%20Loops.ipynb'>Loops</a>
</td><td>Input </td><td>Input
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/08.%20Input.ipynb'>Input</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/08.%20Input.ipynb'>Input</a>
</td><td>If Statements </td><td>If Statements
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/09.%20If%20Statements.ipynb'>If Statements</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/09.%20If%20Statements.ipynb'>If Statements</a>
</td><td>Arrays </td><td>Arrays
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/10.%20Arrays.ipynb'>Arrays</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/10.%20Arrays.ipynb'>Arrays</a>
</td><td>Cell Arrays </td><td>Cell Arrays
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/11.%20Cell%20Arrays.ipynb'>Cell Arrays</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/11.%20Cell%20Arrays.ipynb'>Cell Arrays</a>
</td><td>Variables </td><td>Variables
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/12.%20Plotting.ipynb'>Plotting</a> </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/octave/12.%20Plotting.ipynb'>Plotting</a>
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/00.%20Introduction.ipynb'>Introduction</a> </td><td><a href='https://github.com/APMonitor/begin_octave/blob/master/matlab/00.%20Introduction.ipynb'>Introduction</a>
</td></tr><tr><td>Intro </td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/00.%20Introduction.ipynb'>Introduction</a> </td><td><a href='https://github.com/APMonitor/begin_octave/blob/master/matlab/00.%20Introduction.ipynb'>Introduction</a>
</td><td>Introduction </td><td>Introduction
</td></tr><tr><td>1 </td><td>Overview </td><td>Overview
</td></tr><tr><td>2 </td><td>Debugging </td><td>Debugging
</td></tr><tr><td>3 </td><td>Variables </td><td>Variables
</td></tr><tr><td>4 </td><td>Printing </td><td>Printing
</td></tr><tr><td>5 </td><td>Arduino </td><td>Arduino
</td></tr><tr><td>6 </td><td>Functions </td><td>Functions
</td></tr><tr><td>7 </td><td>Loops </td><td>Loops
</td></tr><tr><td>8 </td><td>Input </td><td>Input
</td></tr><tr><td>9 </td><td>If Statements </td><td>If Statements
</td></tr><tr><td>10 </td><td>Arrays </td><td>Arrays
</td></tr><tr><td>11 </td><td>Cell Arrays </td><td>Cell Arrays
</td></tr><tr><td>12 </td><td>Variables </td><td>Variables
| 1 | [Overview](https://github.com/APMonitor/begin_matlab/blob/master/matlab/01.%20Overview.ipynb) | [Overview](https://github.com/APMonitor/begin_matlab/blob/master/octave/01.%20Overview.ipynb) | | 2 | [Debugging](https://github.com/APMonitor/begin_matlab/blob/master/matlab/02.%20Debugging.ipynb) | [Debugging](https://github.com/APMonitor/begin_matlab/blob/master/octave/02.%20Debugging.ipynb) | | 3 | [Variables](https://github.com/APMonitor/begin_matlab/blob/master/matlab/03.%20Variables.ipynb) | [Variables](https://github.com/APMonitor/begin_matlab/blob/master/octave/03.%20Variables.ipynb) | | 4 | [Printing](https://github.com/APMonitor/begin_matlab/blob/master/matlab/04.%20Printing.ipynb) | [Printing](https://github.com/APMonitor/begin_matlab/blob/master/octave/04.%20Printing.ipynb) | | 5 | [Arduino](https://github.com/APMonitor/begin_matlab/blob/master/matlab/05.%20Arduino.ipynb) | [Arduino](https://github.com/APMonitor/begin_matlab/blob/master/octave/05.%20Arduino.ipynb) | | 6 | [Functions](https://github.com/APMonitor/begin_matlab/blob/master/matlab/06.%20Functions.ipynb) | [Functions](https://github.com/APMonitor/begin_matlab/blob/master/octave/06.%20Functions.ipynb) | | 7 | [Loops](https://github.com/APMonitor/begin_matlab/blob/master/matlab/07.%20Loops.ipynb) | [Loops](https://github.com/APMonitor/begin_matlab/blob/master/octave/07.%20Loops.ipynb) | | 8 | [Input](https://github.com/APMonitor/begin_matlab/blob/master/matlab/08.%20Input.ipynb) | [Input](https://github.com/APMonitor/begin_matlab/blob/master/octave/08.%20Input.ipynb) | | 9 | [If Statements](https://github.com/APMonitor/begin_matlab/blob/master/matlab/09.%20If%20Statements.ipynb) | [If Statements](https://github.com/APMonitor/begin_matlab/blob/master/octave/09.%20If%20Statements.ipynb) | | 10 | [Arrays](https://github.com/APMonitor/begin_matlab/blob/master/matlab/10.%20Lists%20and%20Tuples.ipynb) | [Arrays](https://github.com/APMonitor/begin_matlab/blob/master/octave/10.%20Lists%20and%20Tuples.ipynb) | | 11 | [Cell Arrays](https://github.com/APMonitor/begin_matlab/blob/master/matlab/11.%20Cell%20Arrays.ipynb) | [Cell Arrays](https://github.com/APMonitor/begin_matlab/blob/master/octave/11.%20Cell%20Arrays.ipynb) | | 12 | [Plotting](https://github.com/APMonitor/begin_matlab/blob/master/matlab/12.%20Plotting.ipynb) | [Plotting](https://github.com/APMonitor/begin_matlab/blob/master/octave/12.%20Plotting.ipynb) |
After completing this course, there are next courses that build upon the basic programming experience but with Python.
After completing this course, there are next courses that build upon the basic programming experience but with Java or Python.
</td><td>Introduction </td><td>Introduction
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/00.%20Introduction.ipynb'>Introduction</a> </td><td><a href='https://github.com/APMonitor/begin_octave/blob/master/matlab/00.%20Introduction.ipynb'>Introduction</a>
</td><td>Introduction </td><td>Introduction
</td><td><a href='https://github.com/APMonitor/begin_matlab/blob/master/matlab/00.%20Introduction.ipynb'>Introduction</a> </td><td><a href='https://github.com/APMonitor/begin_octave/blob/master/matlab/00.%20Introduction.ipynb'>Introduction</a>
(:title Begin Matlab with TCLab:) (:keywords matlab, beginner, introduction, engineer, start, basic, course:) (:description Introduction to Matlab with an Arduino Temperature Control Lab. The hands-on exercises reinforce programming skills with the computer controlling heaters, an LED, and measuring temperature.:)
The Begin Matlab with TCLab is an introduction and review of basic Matlab programming with 12 lessons that can be completed in 2-3 hours (15-20 minutes each).
(:html:) <iframe width="560" height="315" src="https://www.youtube.com/embed/RP6pgUk0Fkk" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> (:htmlend:)
The course is designed to start from no programming experience and guide a self-paced learner through the basics of Matlab. The 12 modules are run from Matlab, Octave, or the Jupyter Notebooks. Any of them can serve as the Integrated Development Environment (IDE) but the Jupyter notebooks are used for all instructionals videos. The tutorials start with how to install all of the software and use the hands-on lab kit. The exercises are interactive and there are solution videos for each module if you need additional help.
(:html:) <table class="sample">
<tr><td><b>Module</b> </td><td><b>Matlab</b> </td><td><b>Octave</b>
</td></tr><tr><td>Intro </td><td>Introduction </td><td>Introduction
</td></tr><tr><td>Intro </td><td>Introduction </td><td>Introduction
</td></tr>
</table><br> (:htmlend:)
| 1 | [Overview](https://github.com/APMonitor/begin_matlab/blob/master/matlab/01.%20Overview.ipynb) | [Overview](https://github.com/APMonitor/begin_matlab/blob/master/octave/01.%20Overview.ipynb) | | 2 | [Debugging](https://github.com/APMonitor/begin_matlab/blob/master/matlab/02.%20Debugging.ipynb) | [Debugging](https://github.com/APMonitor/begin_matlab/blob/master/octave/02.%20Debugging.ipynb) | | 3 | [Variables](https://github.com/APMonitor/begin_matlab/blob/master/matlab/03.%20Variables.ipynb) | [Variables](https://github.com/APMonitor/begin_matlab/blob/master/octave/03.%20Variables.ipynb) | | 4 | [Printing](https://github.com/APMonitor/begin_matlab/blob/master/matlab/04.%20Printing.ipynb) | [Printing](https://github.com/APMonitor/begin_matlab/blob/master/octave/04.%20Printing.ipynb) | | 5 | [Arduino](https://github.com/APMonitor/begin_matlab/blob/master/matlab/05.%20Arduino.ipynb) | [Arduino](https://github.com/APMonitor/begin_matlab/blob/master/octave/05.%20Arduino.ipynb) | | 6 | [Functions](https://github.com/APMonitor/begin_matlab/blob/master/matlab/06.%20Functions.ipynb) | [Functions](https://github.com/APMonitor/begin_matlab/blob/master/octave/06.%20Functions.ipynb) | | 7 | [Loops](https://github.com/APMonitor/begin_matlab/blob/master/matlab/07.%20Loops.ipynb) | [Loops](https://github.com/APMonitor/begin_matlab/blob/master/octave/07.%20Loops.ipynb) | | 8 | [Input](https://github.com/APMonitor/begin_matlab/blob/master/matlab/08.%20Input.ipynb) | [Input](https://github.com/APMonitor/begin_matlab/blob/master/octave/08.%20Input.ipynb) | | 9 | [If Statements](https://github.com/APMonitor/begin_matlab/blob/master/matlab/09.%20If%20Statements.ipynb) | [If Statements](https://github.com/APMonitor/begin_matlab/blob/master/octave/09.%20If%20Statements.ipynb) | | 10 | [Arrays](https://github.com/APMonitor/begin_matlab/blob/master/matlab/10.%20Lists%20and%20Tuples.ipynb) | [Arrays](https://github.com/APMonitor/begin_matlab/blob/master/octave/10.%20Lists%20and%20Tuples.ipynb) | | 11 | [Cell Arrays](https://github.com/APMonitor/begin_matlab/blob/master/matlab/11.%20Cell%20Arrays.ipynb) | [Cell Arrays](https://github.com/APMonitor/begin_matlab/blob/master/octave/11.%20Cell%20Arrays.ipynb) | | 12 | [Plotting](https://github.com/APMonitor/begin_matlab/blob/master/matlab/12.%20Plotting.ipynb) | [Plotting](https://github.com/APMonitor/begin_matlab/blob/master/octave/12.%20Plotting.ipynb) |
After completing this course, there are next courses that build upon the basic programming experience but with Python.
Temperature Control Lab
The final project is a review of all course material with real data from temperature sensors in the Temperature Control Lab (TCLab). The temperatures are adjusted with heaters that are adjusted with the TCLab. This lab hardware is also used in the Process Dynamics and Control Course and the Dynamic Optimization Course.
(:html:) <a href='https://apmonitor.com/pdc/index.php/Main/PurchaseLabKit'> <button class="button"><span>Get Lab Kit</span></button> </a> (:htmlend:)
(:html:) <style type="text/css"> table.sample {
border-width: 1px; border-spacing: 0px; border-style: outset; border-color: blue; border-collapse: collapse; background-color: rgb(255, 255, 240);
} table.sample th {
border-width: 1px; padding: 1px; border-style: inset; border-color: gray; background-color: white; -moz-border-radius: ;
} table.sample td {
border-width: 1px; padding: 1px; border-style: inset; border-color: gray; background-color: white; -moz-border-radius: ;
} </style>
(:htmlend:)
(:html:) <style type="text/css"> div.table-title {
display: block; margin: auto; max-width: 600px; padding:5px; width: 100%;
}
.table-title h3 {
color: #fafafa;
}
.table-fill {
background: white; border-radius:3px; border-collapse: collapse; height: 320px; margin: auto; max-width: 600px; padding:5px; width: 100%; box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1); animation: float 5s infinite;
}
th {
color:#D5DDE5;; background:#1b1e24; border-bottom:4px solid #9ea7af; border-right: 1px solid #343a45; text-align:left; vertical-align:middle;
}
th:first-child {
border-top-left-radius:3px;
}
th:last-child {
border-top-right-radius:3px; border-right:none;
}
tr {
border-top: 1px solid #C1C3D1; border-bottom-: 1px solid #C1C3D1; color:#666B85; font-weight:normal;
}
tr:hover td {
border-top: 1px solid #22262e; border-bottom: 1px solid #22262e;
}
tr:first-child {
border-top:none;
}
tr:last-child {
border-bottom:none;
}
tr:nth-child(odd) td {
background:#EEEEEE;
}
tr:last-child td:first-child {
border-bottom-left-radius:3px;
}
tr:last-child td:last-child {
border-bottom-right-radius:3px;
}
td {
background:#FFFFFF; padding:5px; text-align:left; vertical-align:middle; border-right: 1px solid #C1C3D1;
}
td:last-child {
border-right: 0px;
}
th.text-left {
text-align: left;
}
th.text-center {
text-align: center;
}
th.text-right {
text-align: right;
}
td.text-left {
text-align: left;
}
td.text-center {
text-align: center;
}
td.text-right {
text-align: right;
} </style>
<style> .button {
border-radius: 4px; background-color: #0000ff; border: none; color: #FFFFFF; text-align: center; font-size: 28px; padding: 20px; width: 300px; transition: all 0.5s; cursor: pointer; margin: 5px;
}
.button span {
cursor: pointer; display: inline-block; position: relative; transition: 0.5s;
}
.button span:after {
content: '\00bb'; position: absolute; opacity: 0; top: 0; right: -20px; transition: 0.5s;
}
.button:hover span {
padding-right: 25px;
}
.button:hover span:after {
opacity: 1; right: 0;
} </style> (:htmlend:)