Filter löschen
Filter löschen

Combining the matrix' values

1 Ansicht (letzte 30 Tage)
jan
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
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
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...

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

James Tursa
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{:})';

Weitere Antworten (1)

Roger Stafford
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);

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!

Translated by