Save part of a big matrix to *.mat of another name

1 view (last 30 days)
Hi,
Now I have a 3D matrix: abc = rand(2,3,3); I want to save only the second layer of the matrix abc(2,:,:) to the workspace, with the name of, e.g. new.mat
Matlab accepts the following code: save('new.mat', 'abc')
But not save('new.mat', 'abc(2,:,:)')
What should I do? any suggestion is appreciated!

Answers (1)

Azzi Abdelmalek
Azzi Abdelmalek on 18 Oct 2012
abc = rand(2,3,3);
abc2=abc(2,:,:)
save('new.mat', 'abc2')
  2 Comments
Pengfei
Pengfei on 18 Oct 2012
Hi, thanks. But for my case, the abc matrix is huge, and I have to be very frugal about the memory. Making a copy like abc2=abc(2,:,:) will take more space and lower the speed for the code.
Azzi Abdelmalek
Azzi Abdelmalek on 18 Oct 2012
I suggest
abc = rand(2,3,3);
abc2=abc(2,:,:)
abc(2,:,:)=[]
save('new.mat', 'abc2')
or if you don't need abc
clear abc % just before saving abc2

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!