Используя MATLAB , у меня есть массив значений размером 8 строк x N столбцов. Мне нужно создать матрицу одинакового размера, которая подсчитывает максимальные значения в каждом столбце и помещает 1 в ячейку, содержащую максимальное значение, и 0 в другом месте.
Небольшой пример. Предположим, у нас есть массив значений D:
D =
0.0088358 0.0040346 0.40276 0.0053221
0.017503 0.011966 0.015095 0.017383
0.14337 0.38608 0.16509 0.15763
0.27546 0.25433 0.2764 0.28442
0.01629 0.0060465 0.0082339 0.0099775
0.034521 0.01196 0.016289 0.021012
0.12632 0.13339 0.11113 0.10288
0.3777 0.19219 0.005005 0.40137
Тогда выходная матрица для такой матрицы D будет:
0 0 1 0
0 0 0 0
0 1 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 0 0 1
Есть ли способ сделать это, не перехватывая вектор индексов из функции max
, а затем помещая их в нужное место, используя цикл for?