Add comprehensive MATLAB synchronization guide
Created two documentation files to facilitate keeping Python code synchronized with MATLAB source updates: 1. MATLAB_SYNC_GUIDE.md (comprehensive guide): - Complete MATLAB ↔ Python file mapping table - Detailed workflow for applying MATLAB updates - Request templates and best practices - Examples for different update scenarios - Validation procedures 2. sync_matlab_changes.md (quick reference): - Quick mapping reference - Minimal request template - Fast validation commands - TL;DR for urgent updates Key Features: ✅ Clear mapping for all 30+ MATLAB files to Python modules ✅ Step-by-step update workflow ✅ Integrated validation with validation system ✅ Git workflow with tagging ✅ Examples for bug fixes, features, new sensors ✅ Time estimates for different update types Usage: When MATLAB sources change, provide list of modified files and brief description. The guide enables rapid analysis and application of changes to Python codebase with automated validation. Typical turnaround: 15-60 minutes for standard updates. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
192
sync_matlab_changes.md
Normal file
192
sync_matlab_changes.md
Normal file
@@ -0,0 +1,192 @@
|
||||
# Quick Reference: Sincronizzazione MATLAB → Python
|
||||
|
||||
## 🚀 Quick Start
|
||||
|
||||
### Per aggiornare Python da modifiche MATLAB:
|
||||
|
||||
1. **Fornisci lista file modificati**:
|
||||
```
|
||||
- CalcoloBiax_TuL.m
|
||||
- CalcoloRSN.m
|
||||
```
|
||||
|
||||
2. **Descrizione modifiche** (opzionale):
|
||||
```
|
||||
- TuL: Corretto calcolo correlazione Y
|
||||
- RSN: Aggiunto handling per valori negativi
|
||||
```
|
||||
|
||||
3. **Io farò**:
|
||||
- Leggo i file MATLAB
|
||||
- Identifico le modifiche
|
||||
- Aggiorno il codice Python corrispondente
|
||||
- Eseguo validazione
|
||||
- Creo commit con descrizione
|
||||
|
||||
## 📋 Mapping Veloce MATLAB → Python
|
||||
|
||||
### RSN Module
|
||||
```
|
||||
CalcoloRSN.m → src/rsn/elaboration.py
|
||||
CalcoloRSNHR.m → src/rsn/elaboration.py
|
||||
CalcoloLoadLink.m → src/rsn/elaboration.py
|
||||
ConvRSN.m → src/rsn/conversion.py
|
||||
MediaRSN.m → src/rsn/averaging.py
|
||||
```
|
||||
|
||||
### Tilt Module
|
||||
```
|
||||
CalcoloTLHR.m → src/tilt/elaboration.py
|
||||
CalcoloBL.m → src/tilt/elaboration.py
|
||||
CalcoloPL.m → src/tilt/elaboration.py
|
||||
CalcoloKLHR.m → src/tilt/elaboration.py
|
||||
arot.m → src/tilt/geometry.py
|
||||
asse_a.m → src/tilt/geometry.py
|
||||
asse_b.m → src/tilt/geometry.py
|
||||
ConvTilt.m → src/tilt/conversion.py
|
||||
```
|
||||
|
||||
### ATD Module
|
||||
```
|
||||
CalcoloRL.m → src/atd/elaboration.py::elaborate_radial_link_data()
|
||||
CalcoloLL.m → src/atd/elaboration.py::elaborate_load_link_data()
|
||||
CalcoloPL.m → src/atd/elaboration.py::elaborate_pressure_link_data()
|
||||
Calcolo3DEL.m → src/atd/elaboration.py::elaborate_extensometer_3d_data()
|
||||
CalcoloCrL.m → src/atd/elaboration.py::elaborate_crackmeter_data()
|
||||
CalcoloBiax_PCL.m → src/atd/elaboration.py::elaborate_pcl_data()
|
||||
CalcoloBiax_TuL.m → src/atd/elaboration.py::elaborate_tube_link_data()
|
||||
corrTuL.m → src/atd/elaboration.py (incluso in elaborate_tube_link_data)
|
||||
CalcoloStella.m → src/atd/star_calculation.py
|
||||
ConvATD.m → src/atd/conversion.py
|
||||
```
|
||||
|
||||
### Common
|
||||
```
|
||||
database_definition.m → src/common/database.py
|
||||
carica_parametri.m → src/common/config.py
|
||||
carica_calibrazione.m → src/common/config.py
|
||||
ValidaTemp.m → src/common/validators.py
|
||||
Despiking.m → src/common/validators.py
|
||||
```
|
||||
|
||||
## 📝 Template Richiesta
|
||||
|
||||
### Minimo (sufficiente)
|
||||
```
|
||||
File modificati:
|
||||
- CalcoloBiax_TuL.m
|
||||
- CalcoloRSN.m
|
||||
```
|
||||
|
||||
### Ideale
|
||||
```
|
||||
File modificati:
|
||||
1. CalcoloBiax_TuL.m
|
||||
- Corretto calcolo correlazione Y (bug fix)
|
||||
- Aggiunto parametro correction_factor
|
||||
|
||||
2. CalcoloRSN.m
|
||||
- Gestione valori negativi inclinazione
|
||||
- Validazione range angoli
|
||||
```
|
||||
|
||||
## ✅ Validazione Post-Update
|
||||
|
||||
Dopo ogni aggiornamento Python:
|
||||
|
||||
```bash
|
||||
# 1. Test base
|
||||
python -m src.main CU001 A
|
||||
|
||||
# 2. Validazione vs MATLAB
|
||||
python -m src.validation.cli CU001 A --output report.txt
|
||||
|
||||
# 3. Check report
|
||||
cat report.txt | grep "VALIDATION"
|
||||
```
|
||||
|
||||
Se vedi `✓✓✓ VALIDATION PASSED ✓✓✓` → tutto OK! ✅
|
||||
|
||||
## 🔍 Identificare File MATLAB Modificati
|
||||
|
||||
Se hai git nel repo MATLAB:
|
||||
```bash
|
||||
# Modifiche dall'ultimo sync
|
||||
git log --since="2025-10-01" --name-only --pretty=format: | sort -u
|
||||
|
||||
# Modifiche rispetto a un tag
|
||||
git diff v1.0..HEAD --name-only | grep "\.m$"
|
||||
```
|
||||
|
||||
Se non hai git:
|
||||
```bash
|
||||
# Per data modifica
|
||||
find . -name "*.m" -mtime -30 # ultimi 30 giorni
|
||||
```
|
||||
|
||||
## 💡 Esempi
|
||||
|
||||
### Esempio 1: Bug Fix Singolo
|
||||
```
|
||||
File: CalcoloRSN.m
|
||||
Modifica: Linea 234, conversione angolo da radianti a gradi
|
||||
```
|
||||
→ Tempo: ~15 minuti
|
||||
|
||||
### Esempio 2: Multiple Files
|
||||
```
|
||||
File:
|
||||
- CalcoloBiax_TuL.m (nuovo parametro)
|
||||
- CalcoloBiax_PCL.m (correzione formula)
|
||||
- ConvATD.m (nuova calibrazione)
|
||||
```
|
||||
→ Tempo: ~45 minuti
|
||||
|
||||
### Esempio 3: Nuovo Sensore
|
||||
```
|
||||
Nuovo sensore: WireExtensometer (WEL)
|
||||
File nuovi:
|
||||
- CalcoloWEL.m
|
||||
- ConvWEL.m
|
||||
- MediaWEL.m
|
||||
```
|
||||
→ Tempo: ~2 ore (implementazione completa)
|
||||
|
||||
## 🎯 Best Practices
|
||||
|
||||
### ✅ Do
|
||||
- Fornire lista file modificati
|
||||
- Aggiungere breve descrizione
|
||||
- Testare dopo ogni sync
|
||||
- Committare incrementalmente
|
||||
|
||||
### ❌ Don't
|
||||
- Non accumulare troppe modifiche
|
||||
- Non skippare la validazione
|
||||
- Non modificare Python manualmente dopo sync
|
||||
|
||||
## 📞 Richiesta Aggiornamento
|
||||
|
||||
Basta scrivere:
|
||||
|
||||
```
|
||||
"Ho aggiornato questi file MATLAB:
|
||||
- CalcoloBiax_TuL.m (corretto bug correlazione)
|
||||
- CalcoloRSN.m (aggiunto range validation)
|
||||
|
||||
Puoi sincronizzare Python?"
|
||||
```
|
||||
|
||||
Oppure ancora più semplice:
|
||||
|
||||
```
|
||||
"File MATLAB modificati:
|
||||
- CalcoloBiax_TuL.m
|
||||
- CalcoloRSN.m"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**TL;DR**: Fornisci lista file MATLAB modificati → Io aggiorno Python corrispondente → Validiamo → Commit ✅
|
||||
|
||||
Vedi [MATLAB_SYNC_GUIDE.md](MATLAB_SYNC_GUIDE.md) per dettagli completi.
|
||||
Reference in New Issue
Block a user