2017-10-13 1 views
1

EDIT : 또한 각 열의 합계가 특정 수와 같아야합니다 !!행에 특정 수의 1 이진 행렬을 생성하십시오

행을 반복하지 않고 각 행에 특정 수의 1이 포함되도록 이진 NxN 행렬을 생성하려고합니다. 예 : 2와 동일 함은, 따라서

enter image description here

생성되는 각 행과 열 값의 합을 2 사람과 생성의 4x4 행렬의 각 행은 고유하며 정확히 2들과의 합을 갖는다 각 열은 2 오답이 될 것이다 : 컬럼 1의 합이 수행

B = 

1  1  0  0 
1  0  1  0 
1  0  0  1 
0  1  1  0 

때문에 같지 2 (단, 3) 및 열 (4)의 합이 동일하지 않는 2 (단, 1). 각 열은 최대 2를 더해야합니다. matlab에서 어떻게 정답을 얻을 수 있습니까?

+0

그냥이 같은 언급 (루프와 목록에서)이 행에서 매트릭스를 생성 할 수 있습니다 내 대답하지 : [Roger Stafford] (https://de.mathworks.com/matlabcentral/answers/76363-changing-position-of-numbers-in-a-vector)는 모든 가능한 순열을 얻는 매우 효율적인 방법을 보여줍니다. x> = [1 1 0 0]; n = size (x, 2); k = 합 (x == 1); C = nchoosek (1 : n, k); m = 크기 (C, 1); B = 제로 (m, n); B (repmat (1-m : 0) ', 1, k) + m * C) = 1' – Irreducible

+0

예를 들어 편집 내용을 설명 할 수 있습니까? – Irreducible

+0

예, 완료되었습니다. 나는 잘못된 예를 추가했다. –

답변

관련 문제