Combining the matrix' values
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
jan
am 26 Mär. 2015
Beantwortet: Roger Stafford
am 26 Mär. 2015
is there any predefined function let us to combine the values in a matrix example: let A the original matrix
if true
A= 1 2
4 5
7 8
end
the result that i'm loking for is
if true
C= 1 1 1 1 2 2 2 2
4 4 5 5 4 4 5 5
7 8 7 8 7 8 7 8
end
3 Kommentare
James Tursa
am 26 Mär. 2015
So you want the columns of C to be all possible combinations of the elements of the rows of A?
dpb
am 26 Mär. 2015
Appears he's dividing the two values into 1/2^n groupings where n=1:nRows. That is the first new row is 2 subsets, the 2nd is 4, etc., ...
That said, other than coding a loop and repmat no magic solution leaps out at me at the moment...
Akzeptierte Antwort
James Tursa
am 26 Mär. 2015
Bearbeitet: James Tursa
am 26 Mär. 2015
C = allcomb(A(1,:),A(:,2),A(:,3))'
You can find allcomb (by Jos) on the FEX:
Or more generally,
B = mat2cell(A,ones(1,size(A,1)),size(A,2));
C = allcomb(B{:})';
0 Kommentare
Weitere Antworten (1)
Roger Stafford
am 26 Mär. 2015
I think the following generalizes what you have requested for a matrix, A, of arbitrary size:
[m,n] = size(A);
[J,I] = meshgrid(0:n*2^(m-1)-1,m-1:-1:0);
C = A(m*(mod(floor(J./2.^I),n)+1)-I);
0 Kommentare
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!