MATLAB: Making permutations in row elements in a matrix

permutation

Hi all,
I have an nxm matrix. I need to make permutations but the row sums must be fixed.
Example;
Original matrix = [15 20; 10 30; 40 30; 50 10; 15 35]
row sums: 35,40,70,60,50.
One of the permutations; [10 25; 20 20; 50 20; 25 35; 20 30]
row sums: 35,40,70,60,50 (row sums must be fixed).
How can I generate permutations like this? Will permutation test work?
If I generate my original matrix with random numbers taken from a specific distribution , how can I permutate the row elements -with holding the row sums fixed-?
Thanks..

Best Answer

A=[15 20; 10 30; 40 30; 50 10; 15 35]
id1=A(:,1)/5
id2=A(:,2)/5
id=id1+id2
idx1=arrayfun(@(x) randi(x,1,1),id)
idx2=id-idx1
B=[idx1*5 idx2*5]