MATLAB / Octave binding

The MATLAB/Octave binding lives in bindings/matlab and exposes the V1 +n4m namespace over the public libn4m C ABI. The older +pls4all namespace remains available for compatibility.

Current public surface:

  • n4m.version

  • n4m.pls_fit

  • n4m.snv_transform

  • n4m.savgol_transform

  • n4m.kennard_stone_split

  • generated method/model wrappers backed by n4m_method_fit_mex and n4m_model_fit_mex

The Octave path is CI-gated by .github/workflows/cross-binding-parity.yml, which builds libn4m, compiles the MEX shims with bindings/matlab/build_mex.m, then runs bindings/matlab/test/test_parity.m and bindings/matlab/test/test_n4m_alias.m. MATLAB uses the same source package and is checked manually for release because GitHub-hosted runners do not provide a MATLAB license.

See bindings/matlab/README.md for build commands and examples.