csvexport-to-csvmodelicamatdymola

How to export .csv files using a script in Dymola?


I am running a big set of simulations in Dymola using a script, so far, it works well.

However, it remains incomplete because all the results are still in .mat and I have not find a way to automatically save them as .csv.

I found the DataFiles.convertMATtoCSV() function, but it requires me to specify a list of variables to export. I would like it to export all the variables without writing them one by one, is it possible?


Solution

  • In the Dymola Manual, there is a section "Saving all values into a CSV file".
    It contains the following example code:

    // Define name of trajectory file (fileName) and CVS file
    // (CSVfile)
    fileName="PID_Controller.mat";
    CSVfile="AllVariables.csv";
    
    // Read the size of the trajectories in the result file and
    // store in 'n'
    n=readTrajectorySize(fileName);
    
    // Read the names of the trajectories
    names = readTrajectoryNames(fileName);
    
    // Read the trajectories 'names' (and store in 'traj')
    traj=readTrajectory(fileName,names,n);
    
    // transpose traj
    traj_transposed=transpose(traj);
    
    // write the .csv file using the package 'DataFiles'
    DataFiles.writeCSVmatrix(CSVfile, names, traj_transposed);
    

    This should do what you want. Also it gives room for customization if necessary later...