Files
matlab-python/sync_matlab_changes.md
alex e3c177aa6e 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>
2025-10-13 15:57:28 +02:00

4.7 KiB

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:

# 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:

# 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:

# 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 per dettagli completi.