Создать матрицу в MATLAB с ограниченным количеством элементов - PullRequest
0 голосов
/ 14 января 2020

Я хотел бы создать матрицу 12 * 3 в MATLAB, которая имеет только 2 ненулевых элемента в каждой строке. Как мне сгенерировать код, чтобы получить все возможные условия. Ненулевые элементы могут принимать любые целые числа от 1 до 2.

1 Ответ

1 голос
/ 14 января 2020

Если вы хотите все возможные комбинации без повторения для 0 и с повторением для 1 и 2:

% Number of integer with repetition.
n = 2

% Generate all the possible combination of 1 and 2.
[x1,x2] = meshgrid(1:n,1:n);
M = [zeros(n^2,1),x1(:),x2(:)];

% We shift the 0 column n time.
M = cell2mat(arrayfun(@(x) circshift(M,x,2),0:n,'UniformOutput',0).');

Результат:

M =

   0   1   1
   0   1   2
   0   2   1
   0   2   2
   1   0   1
   2   0   1
   1   0   2
   2   0   2
   1   1   0
   1   2   0
   2   1   0
   2   2   0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...