Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to save multi-dimensional array in matlab?

Tags:

matlab

I have an array M=(1000000,12,2,2).

How do I write it to a file to work on later?

save('filename.txt','M','-ASCII')

doesn't seem to work...

Regards,

like image 325
HCAI Avatar asked Dec 01 '25 12:12

HCAI


2 Answers

Why not save it as a mat file (binary) ?

save('filename.mat', 'M' );

afterwards you simply load it

% some code ...
M = [];
load( 'filename.mat' );
% now you have M
% code handling multi-dim M
like image 139
Shai Avatar answered Dec 04 '25 02:12

Shai


1) just like the answer from @Shai, you can save it to be mat file

2) if you want to save it to be txt file, you can do it in this way:

clear;clc;
M=[1000000,12,2,2];
dlmwrite('a.txt',M); % save M to file--a.txt
type a.txt; % print content in a.txt
M = dlmread('a.txt'); % load content of a.txt to M and then you will have 'M=[1000000,12,2,2]'

3) you can also use fopen, fprintf, fclose to save a matrix to a file. check this post: How to save data in .txt file in MATLAB

4) for the code you have, I tested it. It works. The Matlab version I have is R2011b. please check your code again. The code I used to test is as follows:

clear;clc;
M=[1000000,12,2,2];

save('b.txt','M','-ASCII');

clear;clc;
M = load('b.txt','-ASCII');
like image 29
tqjustc Avatar answered Dec 04 '25 03:12

tqjustc