Package jline.util

Class MatFileUtils

java.lang.Object
jline.util.MatFileUtils

public class MatFileUtils extends Object
Utility class for saving matrices and workspaces to MATLAB .mat files using the MFL (MATLAB File Library) for Java.
  • Constructor Details

    • MatFileUtils

      public MatFileUtils()
  • Method Details

    • saveMatrix

      public static void saveMatrix(Matrix matrix, String variableName, String filename) throws IOException
      Saves a single matrix to a .mat file
      Parameters:
      matrix - The matrix to save
      variableName - The name of the variable in the .mat file
      filename - The output filename
      Throws:
      IOException - if file writing fails
    • saveWorkspace

      public static void saveWorkspace(Map<String,Matrix> matrices, String filename) throws IOException
      Saves multiple matrices to a .mat file as a workspace
      Parameters:
      matrices - Map of variable names to matrices
      filename - The output filename
      Throws:
      IOException - if file writing fails
    • saveCTMCWorkspace

      public static void saveCTMCWorkspace(Matrix stateSpace, Matrix infGen, Matrix pi, String filename) throws IOException
      Saves CTMC solver workspace to a .mat file
      Parameters:
      stateSpace - The state space matrix
      infGen - The infinitesimal generator matrix
      pi - The steady-state probability vector
      filename - The output filename
      Throws:
      IOException - if file writing fails
    • genFilename

      public static String genFilename(String prefix)
      Generates a timestamp-based filename for .mat files in the appropriate workspace directory
      Parameters:
      prefix - The prefix for the filename
      Returns:
      A filename with timestamp in the appropriate workspace directory
    • getWorkspaceDirectory

      public static String getWorkspaceDirectory()
      The directory the keep option writes its .mat workspaces to.

      $LINE_WORKSPACE_ROOT/line_workspace/mat, or the system temp dir under the same name, which is where the MATLAB twin puts them too: solver_ctmc_marg.m and its siblings name the file with lineTempName.

      This used to resolve <installRoot>/jar/workspace, or <installRoot>/python/workspace when the working directory happened to contain the substring "python". Both are wrong for the same reason: an installation directory is not a place to write to. It may be read-only, it may be shared between users, and on a release archive the only trace of the scheme was a pair of empty workspace folders shipped so that the write would have somewhere to land. The cwd substring test was also a guess about the caller that a caller under, say, /home/python-dev answered wrongly.

      Returns:
      the workspace directory path, which need not exist yet
    • ensureDirectoryExists

      public static void ensureDirectoryExists(String filename) throws IOException
      Ensures the directory exists for the given filename
      Parameters:
      filename - The filename to create directory for
      Throws:
      IOException - if directory creation fails
    • ensureWorkspaceDirectoryExists

      public static void ensureWorkspaceDirectoryExists() throws IOException
      Ensures the appropriate workspace directory exists
      Throws:
      IOException - if directory creation fails