HCAI
HCAI

Reputation: 2263

How to save multi-dimensional array in 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,

Upvotes: 3

Views: 14226

Answers (2)

tqjustc
tqjustc

Reputation: 3824

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');

Upvotes: 2

Shai
Shai

Reputation: 114936

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

Upvotes: 4

Related Questions