What does it mean "/Multiple" after variable name in *.mat file?

I have *.mat files exported by Bruker Opus program. When I select these files Matlab lists the variables contained in that file. However, after each variable name there is a /Multiple note, (see figure).
When I click on the file it does not load anything.
What does it mean the "/Multiple"? How to load these files?

 Accepted Answer

James Tursa
James Tursa on 25 Apr 2024
Edited: James Tursa on 25 Apr 2024
If the file is written by a 3rd party tool, it is probably written in uncompressed format. In that case, and if the /Multiple is actually part of the variable names, maybe you can just open the file in a text editor and do a global replace of "/Multiple" with "_Multiple". Save the file under the same name, and then try loading that. It is critical that the number of characters you are replacing remains exactly the same before and after. I.e., don't replace "/Multiple" with "Multiple" because the number of characters are not the same. I think mat files record the length of variable names and you don't want to muck that up.

3 Comments

(I would save the file under a different name, just-in-case)
Thanks, it worked, although I edited it in a Hex editor.
Csaba

Sign in to comment.

More Answers (1)

The .mat file has been created by an external program not using the official Application Programming Interface. The variable names that have been inserted in the .mat are not valid.

9 Comments

Well, I downloaded the file. When running it it says:
"Error using loadfixnames (line 136)
Unable to compile loadfixnames.c"
Since I do not have any C compiler (long time ago I stopped writing C programs), I checked the description, it says:
"Requires
Any C compiler, such as the supplied LCC compiler. The routines are self-building ... you don't have to know anything about mex or C to use them."
But there is no supplied compiler in the zip file downloaded. I am still using the 2019b version, where in principle it should be.
I have installed the MINGW compiler suggested by MATLAB. When I try to run loadfixnames the MATLAB crashes.
Any suggestions?
I think loadfixnames is broken in the latest versions of MATLAB because TMW changed the API to disallow loading invalid named variables in mex routines, so the mex routine can't fix them. I will take another look at this submission to see if there is any way to bring it up to date.
Are the mat files text files? I.e., can you read them in a text editor? Can you post one of the mat files?
No, these files are binary.
I do not know how to attach, because the smallest one is bigger than 10 Mb and cannot be attached here.
Can you try to reproduce the problem with a smaller file? I.e., generate a new smaller file?
Unfortunately this is the smallest file the instrument can produce. It is a map of a FT-IR microscope and this is the smallest area to be scanned.
OK. Did you try running with the verbose flag set to 1? What output did you see before MATLAB crashes?
loadfixnames('map 2x2 32x32 m5.0.mat',1)
Verbose ...
Invalid Name: <AB/Multiple>
Replaced With: <AB_Multiple>
Loading variable <AB_Multiple> double 553 x 4097
Interesting ... loadfixnames sees that /Multiple as part of the variable name. And the dimensions differ from your post. I will try to look into my code this weekend.
Dimensions differ because unfortunately I tried a different file. Sorry. Here is the file content:

Sign in to comment.

Categories

Products

Release

R2019b

Asked:

on 22 Apr 2024

Commented:

on 26 Apr 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!