Sample Raw Markdown from the Python-MATLAB Interoperability Workshop
## Why do we want to develop a toolbox?
We want a toolbox to:
- **accesibilize** the use of techniques
- develop and try new ideas **faster**
- **colaborate** better together.
## What is a useful tool?
A good tool:
- solves one specific problem
- uses a software-independent standard for its inputs and outputs
- has enough documentation and examples.
## Example of a really good tool: STRIKE-GOLDD
\begin{columns}
\begin{column}{0.5\textwidth}
The STRIKE-GOLDD toolbox:
\begin{itemize}
\item is a free and open-source
\item does identificability and observability analysis
\item avoids bad surprises
\end{itemize}
\end{column}
\begin{column}{0.5\textwidth}
\begin{figure}
\centering
\includegraphics[width=\columnwidth]{img/strike_goldd_paper}
\end{figure}
\end{column}
\end{columns}
## {.standout}
Do you always use STRIKE-GOLDD \
before running an identification? Why?
## The Python vs. MATLAB dilemma
Not using STRIKE-GOLDD is a huge opportunity cost!
Not using software-independent standards leads to...
- ineficient workflows that promote reinventing the wheel
- the Python vs. MATLAB dilemma
## Example
::: columns
:::: column
We developed a data-driven method which:
- infers the structure of a model from experimental data
- but requires the measurement derivatives
\vspace{0.5cm}
There are many methods to approximate derivatives:
- PyNumDiff is a Python package that implements many of them
::::
:::: column
\begin{figure}
\centering
\includegraphics[width=\columnwidth]{img/paper}
\end{figure}
::::
:::
## Two options
\centering
**Option 1: Do everything in Pyton**
[](https://mermaid.live/edit#pako:eNqNUkuPmzAQ_ivIp21EIswrC6r2Uo7dNmpuhR4cPAQr2EbGbkuj_PcOr2p7qYoveOZ7-LPnTmrNgeSkUk2nf9QtM9b7-KVSlfLwG9zlaljfervdabStVrudt3S4MFBbodWMnipFUD6dLbOwH3pWg_f-Yl48ierdu28L4kTLs5CuQ8zSHUZlW7Ci9jizbENF5Wdn5sqeG_Ed1CoFeAA-gVY_Wj69AhucAQnKDptLEf5VX8gcUIlZVJtxq1NYnsZPThaiaVYyKD511_R27ABzeY3ourwX6uYP1ugb5JeO1be3oBP9H1D0T9Bmi4b7_QtKbrc2bwu6xV664ZZh6YZb-KUbLSneLuKTqxGc5NY48IkEI9m0JfeJWhF8CQkVyfGXQ8NcZyucigfSeqa-ai03ptHu2pK8Yd2AO9fjS0EhGA6K_FM1eJFgPminLMlpFs0iJL-TnyRPo0NKkywOgizKspjGPhkRlAaHOEyOQZwlaZDEx4dPfs2uweH5mYZhGmdRckzoMUUCc1afR1VvZwIurDavyyzPI_34DXY84zc)
**Option 2: Do everything in MATLAB**
[](https://mermaid.live/edit#pako:eNpVUsuO2zAM_BWDp93ACfxOLBQLbNfHDVo0PdXeg2IxsRBZMmSpbRrk3yu_itS6mORwZkjpBrViCAQqeRLqV91Qbbz3b5WspOe-3h7PmnaNt1rtX7-_v35eraYC4xprw5UcwUOmCMqng6EG131Ha_Q-HfWL1zpy8fwxIb6G5YG3VjjMVO2v0jRoeO0xauiCissvVo-ZNdP8J8qZCk2j2ACa9cLyaY-0txpblKZfVIrov_zUzNAxUePYRtysFJVvVNQPhh5gMxtKNsDnbZirQNfmnbgQpOPy4vdGqwuSo6D1ZYEVgbdev7hxl7HHsAgX31M1WkxM1WhxP1XjSfXxgA9nzRkQoy360KJu6RDCbWitwK2yxQqI-2V4olaYyt3q3bV1VP5Qql06tbLnBsiJit5FtnOrxoJTd9Htv6x2g6N-U1YaIFG6HUmA3OA3kCzeZGGaJ0GQx3mehIkPVyBhFmwShwySPM2CNNneffgzqgab3S6MoizeZVm8zaI09IFaow5XWS-ekHGj9H56i-OTvP8FtRTNwQ)
## {.standout}
What would you do?
Option 1: Do everything in Python
Option 2: Do everything in MATLAB
## {.standout}
What would you do?
Option 1: Do everything in Python $\rightarrow$ not use MATLAB
Option 2: Do everything in MATLAB $\rightarrow$ not use PyNumDiff
## There is a third option
\begin{columns}
\begin{column}{0.5\textwidth}
\textbf{Option 3: Use MATLAB and Python}
\vspace{0.5cm}
Use a file that can be read and written by:
\begin{itemize}
\item MATLAB
\item Python
\end{itemize}
\vspace{0.5cm}
We used CSV (comma-separated value)
\end{column}
\begin{column}{0.5\textwidth}
\begin{figure}
\centering
\includegraphics[width=\columnwidth]{img/csv_example}
\end{figure}
\end{column}
\end{columns}
## The workflow we used
\centering
[](https://mermaid.live/edit#pako:eNptUltvmzAU_ivoPHVREtmGkIKmSl15bLZomfYw6IOLDwEJ25Gxt7Eo_30u1Kkq1bz4XL7LOfgMtRYIOVSq6fWfuuXGRo_fK1WpyJ_BPR8NP7XRYrG7__F4_2WxmAsFKW8OlltcDSdeY_T52dxF0lP1n57mjj0tD510ve-Zq8OobIu2qyPBLQ9dcfnNmSmzEqb7jeqVCm2rxWsTKvGBoYfDz6jpehyunmh5s0M-OIMSlR2Ck4K9y88CAr0at17x2vexzH70TlTQ2LNyP351suia5j0sQAsSrVZ3fvywhiksaPA4V1mgm6ssOJ2rcSB8-2AJR9MJyK1xuASJRvKXEM4v0Ar8aiVWkPurwIa73lb-n1487MTVL61lQBrtji3kDe8HH7mTXz0WHffjymvW-JnQPGinLOQsySYSyM_wF_I0Xqd0kyWEZHGWJTRZwgg5Tck6YZstSbJNSjbJ9rKEf5MqWd_eUsbShLCYpluaejburD6Mqg6eUHRWm938EqcHefkPmEXKNQ)
## We avoid the opportunity cost
With this workflow, we:
- use MATLAB for (almost) everything
- only need to know the bare minimum of Python:
- how to load and save a CSV
- how to use PyNumDiff
The advantages:
- we avoid the opportunity cost
- we solve the Python vs. MATLAB dilemma
- the workflow is flexible
## We can easily use real experiment data
\centering
[](https://mermaid.live/edit#pako:eNptUsGOmzAQ_RU0p21EIuMQAqhaabscNy3aVD0UevDiISCBQcZul0b59zp4HWnVtS_2vDfz3nh8hmrgCCmUou6GP1XDpPKenktRCs-sSb-cJBsbb7U6PHx_eviyWlkgI8XdUTGF62lkFXqfX-S915tS3adflpEHxbHtdWc4Fp1moRpUbeVxpphjbYtvWi6RNZftbxRvpVA1A38joeAfGHo8_vDqtsPp5iko7g7IJi2xR6Em5ySj7-JWgKNRY8oo3ngfy-SzcSKcRk6LfP6q-6yt6__T8rB4RtZZBXwdjcZV0fUaeuv1vbHp6BlZAnngXuyG23YsSp2yRalryqLba7H3G3w4yZZDqqRGH3qUPbte4XxNLcFMoccSUnPkWDPdqdKM_2LSRiZ-DkPvMuWgTw2kNesmc9OjmRJmLTMv09-i0rSP8nHQQkFK42QpAukZXiGNtpso2CUhIck2ScIg9GGGNIjIJqS7PQmTXUR24f7iw99FlWziOKA0oiSO6Z6YNB-YVsNxFpXzhLxVgzzYT7v83cs_bCDWYA)
## We can easily add more tools
\centering
[](https://mermaid.live/edit#pako:eNp9U11vmzAU_SuWn7qIRHwmAU2VuvI0NR1qpj0M9uDgS0ACGxl7DYvy3-fgGKlVVXjB95xz7_HBPuOSU8AJLljV8teyJkKip5eCFQzpZ1CHoyB9jRaL3cPPp4dvi4UBUje_20siYTn0pAT09SDuUadbtV_-GEbm5fumU63mGHQYmaxBNiWiRBLLCvIfSkyVJRXNX2C3ViBrTm8kYPQDQ9moKcwayvw8G59VlzZV9ansu2obMqui_BleEWEUVYSVoxkuOW8P_PRpm8f9L1Q1LQxzIl5-twMyKAEdMDnYHFL_Td1MoKD3SqTe78ybxlw_bs7C_AVIa-hw6rXgKrexhWi5vNczrbPUnQqZZ8OfcePNoL7NyqC-dWjQ4C05mknvX-zgo2goTqRQ4OAOREeuS3y-diiw_s0dFDjRnxQqolpZ6PN10bKesN-cd1YpuDrWOKlIO-iV6vUxgLQhOuNurgodDIhHrpjESRRspiY4OeMTTtbBau1Fcei6cRDHoRc6eMSJt3ZXoR9t3DCO1m4Ubi4O_jdNdVfbref7az-IQtf3t_HWwURJvh9ZaT0BbSQXO3Mrpstx-Q-pbfHF)
## We need a standard
The weakness of this workflow is that:
**we need software-independent standards**