OpenDPD FOR MATLAB 2.4.0

Troubleshooting

MATLAB cannot find opendpd.studio

Install the toolbox (OpenDPD-2.4.0.mltbx), or add this checkout's Matlab/toolbox folder to the MATLAB path. Use which opendpd.studio -all and which opendpd.setup -all to check for older installations. Only the toolbox root needs to be on the path.

Python or OpenDPD cannot load

Run pyenv and opendpd.doctor(). Select a Python executable supported by your MATLAB release and install the matching package into that exact environment: run python -m pip install --upgrade "opendpd==2.4.0" in its terminal. Then select that interpreter in MATLAB (a packaged installation needs no source checkout):

opendpd.studio("/path/to/workspace", ...
    PythonExecutable="/path/to/python");

If MATLAB has already loaded a different interpreter or checkout, finish work using it before restarting Python or MATLAB. The toolbox does not terminate that session automatically. Consult pyenv for execution-mode and release-specific behavior.

The 2.4.0 Python wheel includes Studio. Confirm opendpd.doctor() points to the environment where opendpd==2.4.0 is installed. For a source checkout selected with SourceDirectory, build its frontend from the repository root:

npm --prefix frontend ci
npm --prefix frontend run build

Then run opendpd.studio(workspace) again. If a workspace service was started before the update, finish its jobs and restart it with the updated environment or checkout. The toolbox does not silently restart an existing service. Inspect the service log and opendpd.doctor() if readiness fails. Keep .sdk-service-*.log files local because they may contain a private bootstrap URL.

A Studio tab alone does not attach MATLAB. Start the connection from the MATLAB session you want to use and select the same workspace folder.

Run opendpd.studio(workspace) in MATLAB. Check that the browser and MATLAB use the same workspace. MATLAB must remain running and able to process callbacks. A long blocking computation, modal interaction or breakpoint can delay the heartbeat and pending actions. Once MATLAB resumes callback processing, its presence updates again.

Closing the browser does not disconnect the bridge. Calling opendpd.disconnect() or closing MATLAB does. After an intentional disconnect, connect again before requesting imports or report delivery.

No variables appear, or import fails

If an import loses its connection, inspect Studio's dataset list before retrying. The server may still finish. The SDK retains staged input under imports/ and reports its location when the outcome is uncertain.

A report has not arrived

Check MATLINK's session and delivery status. Send to MATLAB needs a completed experiment with a saved result. Send when ready waits for successful completion and for MATLAB to process callbacks. Failed and cancelled runs cannot complete that delivery.

Disconnecting or closing MATLAB ends pending delivery. Reconnect, select the completed experiment, and send its report again. There is no need to copy a run ID or type a variable name. MATLINK shows the generated variable name after success; Open in MATLAB opens it in MATLAB. Existing variables are preserved.

A delivered report describes the stored evaluation. It does not contain a newly predistorted waveform or recalculate metrics for a waveform passed to apply. Use the script workflow for inference and export.

Training keeps running after closing MATLAB

This is the shared-service lifecycle. Reconnect to the workspace and use Studio or opendpd.cancel(job) to cancel a particular job. To stop an SDK-started service and its jobs, use opendpd.closeProject(p, StopService=true). Stop a service launched by Studio through its original launcher.

apply rejects a model or differs from runDPD

apply supports unquantized gru, tres_gru, gmp, mp_ls and gmp_ls on CPU. Any other model, a quantization-aware run, or Execution="streaming" for a model without a registered streaming variant (only gru and gmp have one) is refused with the reason; the output is never approximated. Offline segments use frozen run settings. The baseline test-split exporter carries recurrent state across the waveform, so it can differ from segmented apply; ask apply for Execution="streaming" to compare like with like. Check info.execution, info.limitations and info.streaming. A changed checkpoint hash is rejected; restore the original artifact.

A missing SegmentSamples error from importIQ or importMAT is deliberate: see the import options in the reference.

Documentation is blank

opendpd.help() opens the bundled guide without Python or an internet connection. Check that resources/docs was included in the installation, and reinstall the package if resources are missing. External links need internet access. This preview requires desktop MATLAB.

Package installation path is not accessible

Choose a writable Add-Ons installation folder in MATLAB Settings. A fresh batch profile may have no installation folder set. The installation smoke test uses a temporary folder for its own session.