How randomly choose pairs of elements from a squared matrix and put them in an other matrix?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Hi, I have a matrix A
A =
1 4 2 3
4 3 1 2
3 2 4 1
2 1 3 4
How to make different groups of two elements from this matrix? But the chosen elements (from the matrix A) have to be adjacent in the matrix A. for example A(1,1) & A(1,2) are adjacent and so they can be chosen. and A(1,1) & A(4,3) can't be chosen to make a group. I'd like to create a function which randomly choose these elements from A. And the function generates an other matrix containing the (2 by 2) different groupements randomly created.
example "function group":
V=group(A)
V= 1 4
3 2
4 2
3 1
2 1
4 3
3 2
1 4
This new V matrix is made of groups
A(1,1)&A(2,1)
A(2,2)&A(4,1)
A(1,2)&A(1,3)
...
Hope you understand what I mean. In fact we randomly choose pairs of elements in the matrix A. thank you!
0 Commenti
Risposta accettata
Azzi Abdelmalek
il 11 Giu 2013
Modificato: Azzi Abdelmalek
il 11 Giu 2013
m=5
n=numel(A)
ii=0
while ii<m
id=randperm(16);
[ii1,jj1]=ind2sub(size(A),id(1));
[ii2,jj2]=ind2sub(size(A),id(2));
if and(abs(ii1-ii2)<=1,abs(jj1-jj2)<=1);
ii=ii+1;
B(ii,:)=[A(id(1)) A(id(2))]
end
end
3 Commenti
Azzi Abdelmalek
il 11 Giu 2013
Modificato: Azzi Abdelmalek
il 11 Giu 2013
m=5
n=numel(A)
ii=0
while ii<m
id=randperm(16);
[ii1,jj1]=ind2sub(size(A),id(1));
[ii2,jj2]=ind2sub(size(A),id(2));
if and(abs(ii1-ii2)<=1,abs(jj1-jj2)<=1);
ii=ii+1;
B(ii,:)=[A(id(1)) A(id(2))]
indice1{ii,1}=[ii1 jj1]
indice2{ii,1}=[ii2 jj2]
end
end
[cell2mat(indice1) cell2mat(indice2)]
Più risposte (1)
Azzi Abdelmalek
il 11 Giu 2013
Modificato: Azzi Abdelmalek
il 11 Giu 2013
m=5
n=numel(A)
ii=0
idx=[];
while ii<m
id=setdiff(randperm(16),idx,'stable');
[ii1,jj1]=ind2sub(size(A),id(1));
[ii2,jj2]=ind2sub(size(A),id(2));
if or(abs(ii1-ii2)==1 & abs(jj1-jj2)==0,abs(ii1-ii2)==0 & abs(jj1-jj2)==1);
ii=ii+1;
idx=[idx id(1:2)];
B(ii,:)=[A(id(1)) A(id(2))]
end
end
disp(idx) % Linear index
[idx1,idx2]=ind2sub(size(A),idx);
4 Commenti
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!