Определение проблемы
У меня есть два массива, которые называются весами и индексами соответственно:
weights = [1, 3, 2];
indices = [1, 1, 2, 3, 2, 4];
m = 4; % Number of Rows in Matrix
n = 3; % Number of Columns in Matrix
M = zeros(m, n);
Массив под названием indices хранит индексы, где мне нужно хранить 1 в каждом столбце.
Например, для первого столбца в строке 1, который указан в индексах (1), мне нужно сохранить 1, и это указано весами (1), которые равны 1.
M(indices(1), 1) = 1;
Для столбца 2, в строках 1–3 (индексы (2: 4)) мне нужно сохранить 1. Диапазон индексов для столбца 2 снова обозначен весами (2).
M(indices(2:4),2) = 1;
Аналогичным образом, для столбца 3, в строках 2 и 4 (индексы (5: 6)) мне нужно сохранить 1. Диапазон индексов для столбца 3 снова указывается весами (3).
M(indices(5:6),3) = 1;
Ожидаемая двоичная матрица
Ожидаемая и получающаяся двоичная матрица:
1 1 0
0 1 1
0 1 0
0 0 1
Решение
Есть ли способ, которым я могу сделать это в обобщенном виде, используя массивы весов и индексов, вместо того, чтобы делать это жестко, чтобы создать двоичную матрицу M?