8
$\begingroup$

For example:

M={}; 
For[n = 0, n < 100, n = n + 1,
  ... ...   
 M=Append[M, Resultmatrix ]; 
 (*Resultmatrix is the intermediate reslut 4X4 matrix*)
]
Export["data.mat", M]

But when loading data.mat in Matlab, I find that M splits into multiple variables with names like Expression1, Expression2, Expression3 .... I also tried XLS format, but each 4x4 matrix in the list of matrices appears in an individual worksheet. So my question is how can I put M in a single variable, thus I could manipulate it.

$\endgroup$
6
  • $\begingroup$ You can create the list in one go: m = Array[#1 - 1 &, {100, 4, 4}] $\endgroup$
    – ssch
    Commented Jan 19, 2013 at 12:48
  • $\begingroup$ You could export Flatten[m] and then use reshape(Expression,[100 4 4]) (not sure about syntax) in the other software. $\endgroup$ Commented Jan 19, 2013 at 12:53
  • $\begingroup$ thanks ssch and b.gatessucks ,M is not a constant matrix, posted is just an example, Flatten[m] does work, but I found reshape changed the structure of M. $\endgroup$
    – novice
    Commented Jan 19, 2013 at 13:18
  • $\begingroup$ @user5463 The structure is different because one uses row major ordering and the other column major ordering to store the arrays. See this question and the answers there for a way to convert (the answers deal with converting in mma... you can do something similar in matlab) $\endgroup$
    – rm -rf
    Commented Jan 19, 2013 at 17:13
  • $\begingroup$ also relevant: mathematica.stackexchange.com/questions/6837/… $\endgroup$
    – s0rce
    Commented Jan 20, 2013 at 3:25

2 Answers 2

11
$\begingroup$

See the link for import and export examples for mat files also related question

Below examples work:

Export["file.mat", {"Var1" -> {{1, 2, 3}, {3, 4, 5}}, "Var2" -> {{4, 5, 6}}}, "LabeledData"]

So, use labels and Labeled data options.

$\endgroup$
1
  • $\begingroup$ What do the brackets do? $\endgroup$
    – Sid
    Commented Nov 21, 2019 at 13:40
1
$\begingroup$

Use the hdf5 format instead if you have too many dimensions. Saves a lot of pain and both Matlab and Mathematica support the hdf5 format.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.