How can i store a .mat file into a variable?

 Accepted Answer

fid = fopen('YourMatFile.mat', 'r') ;
YourVariable = fread(fid, '*uint8').' ;
fclose(fid) ;
YourVariable is now a row vector of bytes that make up the mat file.
This kind of thing can be useful if you need to transmit a mat file over wireless or Ethernet, but otherwise has limited use.
.... But perhaps the answer you were looking for was just
YourVariable = load('YourMatFile.mat');

4 Comments

i just want to get a function like normal=xlsread('normal.xlsx'); Above is the syntax to read an excel file but here instead of , i have to read the .mat file
.mat files typically have multiple variables.
If you have exactly one variable stored in a .mat file, then
mat_filename = 'YourMatFile.mat';
temp = load(mat_filename);
fn = fieldnames(temp);
first_variable = fn{1};
normal = temp.(first_variable);
clear temp
This can be abbreviated to
FirstCell = @(C) C{1};
temp = load('YourMatFile.mat');
normal = temp.(FirstCell(fieldnames(temp)));
Hi, I am also having a similar problem. I have 23 variables stored in my temp.mat file. Is it possible to use these values by simply using load('temp.mat', 'variable1', 'variable2', ....) or will I need to recover the values 1 by 1?
Thanks
@Kieran Graham: the recommended approach is to simply load into an output variable
S = load(...);
All of your variables will be fields in the scalar structure S, and are trivial to access.

Sign in to comment.

More Answers (0)

Asked:

on 21 Mar 2017

Commented:

on 22 Apr 2020

Community Treasure Hunt

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

Start Hunting!