Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

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.

share|improve this question
    
You can create the list in one go: m = Array[#1 - 1 &, {100, 4, 4}] –  ssch Jan 19 '13 at 12:48
    
You could export Flatten[m] and then use reshape(Expression,[100 4 4]) (not sure about syntax) in the other software. –  b.gatessucks Jan 19 '13 at 12:53
    
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. –  novice Jan 19 '13 at 13:18
    
@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) –  rm -rf Jan 19 '13 at 17:13
    
also relevant: mathematica.stackexchange.com/questions/6837/… –  s0rce Jan 20 '13 at 3:25

1 Answer 1

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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