Это будет сделано
m(max(i.*reshape([1:numel(m)],size(m))))
Пояснение
Итак, мы генерируем массив индексов
reshape([1:numel(m)],size(m))
ans =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
Это представляет индексы для каждого значения. Мы умножаем это на I
, чтобы получить интересующие нас значения
i.*reshape([1:numel(m)],size(m))
ans =
1 0 0 13
0 6 0 0
0 0 0 15
0 8 12 0
Затем мы делаем max
для этого, поскольку max
работает со столбцами. Это даст нам последний индекс в каждом столбце.
max(i.*reshape([1:numel(m)],size(m)))
ans =
1 8 12 15
Затем примените эти индексы к m
, чтобы получить значения
m(max(i.*reshape([1:numel(m)],size(m))))
ans =
16 14 15 12