MATLAB Answers

Random save two large matrices in the same manner?

2 views (last 30 days)
Salem
Salem on 16 Nov 2014
Commented: Salem on 16 Nov 2014
I have a matrix M1 and a vector M2. M1 is 4d matrix sized [150*150*3*9000] and the vector M1 is [9000*1]. Both of them saved using this command, save ('data. mat','M1','M2','-7,3'). I want to save the data randomly in both M1 & M2 but I need the rows in both M1 & M2 go together because M1 is the labeled or value of the images in M2. I tried many code, but after the change I found new rows in M2 is pointing to new rows in M1 which change the labels of the data. I tried for loop, but I've gone out of memory. So, could someone please share with me some an efficient code or way to do like this operation. Thanks in advanced.
  2 Comments
Salem
Salem on 16 Nov 2014
Thanks Guillaume,
Thanks for replying. I want to save the variables in the matrix randomly. like
Sorry for adding irrelevant tags and products, I though images may is related because this matrix are images.

Sign in to comment.

Accepted Answer

the cyclist
the cyclist on 16 Nov 2014
Edited: the cyclist on 16 Nov 2014
Here's one way. It will shuffle M1 and M2 in place:
% Smaller version of your data
M1 = rand(5,5,3,9);
M2 = rand(9,1);
% Create an random index into your matrices
idx = randperm(9);
% Shuffle both matrices by the same index, preserving the relationship
M1 = M1(:,:,:,idx);
M2 = M2(idx);
Then you can save them.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!