Skip to main content

Matlab

Matlab can be executed through command-line instructions, which allows executing complete Matlab scripts. These scripts can, for example, be generated dynamically within VIKTOR. See the Matlab documentation for more info on running Matlab from the command-line.

VIKTOR's Matlab integration requires a Generic worker.

from viktor.external.generic import GenericAnalysis# Generate the input file(s)files = [    ('input1.txt', BytesIO(b'filecontent1')),    ('input2.txt', BytesIO(b'filecontent2'))]# Run the analysis and obtain the output filegeneric_analysis = GenericAnalysis(files=files, executable_key="matlab", output_filenames=["output.txt"])generic_analysis.execute(timeout=60)output_file = generic_analysis.get_output_file("output.txt")
caution

GenericAnalysis.execute needs to be mocked within the context of (automated) testing.

The executable_key in the example above refers to the "matlab" command. This command should also be specified in the configuration file on the server, located in the same directory as the worker:

config.yaml

executables:
matlab:
path: 'C:\path\to\matlab.exe'
arguments:
- '-nodisplay'
- '-nosplash'
- '-nodesktop'
- '-r'
- '\"C:\scripts\runMyModel.m\"'
workingDirectoryPath: 'C:\scripts'
maxParallelProcesses: 1 # must be one, please do not change