digital-brain/content/zettels/matlab.md

117 lines
4.7 KiB
Markdown

+++
title = "Matlab"
author = ["Dehaeze Thomas"]
draft = false
+++
Tags
: [Simulink]({{< relref "simulink.md" >}})
## Resources on Matlab {#resources-on-matlab}
Books:
- (<a href="#citeproc_bib_item_3">Higham 2017</a>)
- (<a href="#citeproc_bib_item_1">Attaway 2018</a>)
- (<a href="#citeproc_bib_item_5">OverFlow 2018</a>)
- (<a href="#citeproc_bib_item_4">Johnson 2010</a>)
- (<a href="#citeproc_bib_item_2">Hahn and Valentine 2016</a>)
## Useful Commands {#useful-commands}
| Command | Description |
|------------------------|-------------------------------------------------------------|
| `desktop` | Open the Matlab Desktop |
| `workspace` | Open the Workspace |
| `who` | List all variables in the workspace |
| `edit <filename>` | Edit the file using Matlab Desktop (usefully for debugging) |
| `help <function>` | |
| `doc <function>` | |
| `checkcode <filename>` | Check Matlab code files for possible problems |
| `preferences` | Open Matlab preferences |
## Tips {#tips}
- Folder that starts with a `+` are automatically added to the path.
It is useful to add function inside such folder.
Then the function is accessible with `folder.function`.
## Figures {#figures}
### Bode Plot {#bode-plot}
## Snippets {#snippets}
### Do not show legend for one plot {#do-not-show-legend-for-one-plot}
```matlab
figure;
hold on;
plot(x, y1, 'DisplayName, 'lengendname');
plot(x, y2, 'HandleVisibility', 'off');
hold off;
legend('Location', 'northeast');
```
## Linux Installation {#linux-installation}
If a single user is using the Matlab installation on the machine:
```bash
sudo chown -R $LOGNAME: /usr/local/MATLAB/R2017b
```
Then, Toolboxes can be installed by the user without any problem.
To install Toolboxes, the best is to Download the Matlab installer from mathworks and just select the wanted toolboxes.
## Used Toolboxes {#used-toolboxes}
Nice functions:
- <https://github.com/jmrplens/SetFigPaper>
- <https://github.com/altmany/export_fig>
- Matlab's `exportgraphics`
- `vfit3` ([link](https://www.sintef.no/projectweb/vectorfitting/)): used to identify transfer functions
## Debug Scripts {#debug-scripts}
<https://fr.mathworks.com/help/matlab/debugging-code.html>
<https://stackoverflow.com/questions/22853116/how-to-debug-matlab-code-without-gui>
| Command | Effect |
|------------|--------------------------------------------------------------|
| `dbclear` | Remove breakpoints |
| `dbcont` | Resume execution |
| `dbdown` | Reverse dbup workspace shift |
| `dbquit` | Quit debug mode |
| `dbstack` | Function call stack |
| `dbstatus` | List all breakpoints |
| `dbstep` | Execute next executable line from current breakpoint |
| `dbstop` | Set breakpoints for debugging |
| `dbtype` | Display file with line numbers |
| `dbup` | Shift current workspace to workspace of caller in debug mode |
| `keyboard` | Give control to keyboard |
| `echo` | Display statements during function execution |
## Bibliography {#bibliography}
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
<div class="csl-entry"><a id="citeproc_bib_item_1"></a>Attaway, Stormy. 2018. <i>Matlab : a Practical Introduction to Programming and Problem Solving</i>. Amsterdam: Butterworth-Heinemann.</div>
<div class="csl-entry"><a id="citeproc_bib_item_2"></a>Hahn, Brian, and Daniel T Valentine. 2016. <i>Essential Matlab for Engineers and Scientists</i>. Academic Press.</div>
<div class="csl-entry"><a id="citeproc_bib_item_3"></a>Higham, Desmond. 2017. <i>Matlab Guide</i>. Philadelphia: Society for Industrial and Applied Mathematics.</div>
<div class="csl-entry"><a id="citeproc_bib_item_4"></a>Johnson, Richard K. 2010. <i>The Elements of Matlab Style</i>. Cambridge University Press.</div>
<div class="csl-entry"><a id="citeproc_bib_item_5"></a>OverFlow, Stack. 2018. <i>Matlab Notes for Professionals</i>. GoalKicker.com.</div>
</div>