making permutations in row elements in a matrix

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..

 Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 11 Mai 2013
Modifié(e) : Azzi Abdelmalek le 11 Mai 2013
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]

3 commentaires

Ayse Kazan
Ayse Kazan le 11 Mai 2013
Thank you so much for the answer, Azzi.
If both the row and coloumn sums must be fixed, what shoul I do?
Sorry, this will be different from my heading but I would appreciate if you could help.. (I dont know if I can change the heading of the question)
The answer will be different, please do not change the question, post a new question
Ayse Kazan
Ayse Kazan le 11 Mai 2013
ok thank you so much.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by