Я действительно не знал, как это назвать!Элементарное сужение, из двух матриц
Я пытаюсь выполнить приведенную ниже формулу R. Вы можете в значительной степени игнорировать все для суммирования части выше линии
кроме Если у меня есть две матрицы
> task2
[,1] [,2] [,3]
[1,] 1 3 3
[2,] 2 5 1
> actor
[,1] [,2] [,3]
[1,] 1 5 1
[2,] 2 4 6
[3,] 4 3 4
Результирующая матрица должна быть (для суммирующей части над линией)
> result
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 4 1 1
результат [1,1] = сумма (pmax (0,1-1), pmax (0,3-2), pmax (0,3-4) = 1
Я думаю, что знаю, как это сделать она с использованием вложенных циклов для, хотя я знаю, что это не так, как вы могли бы сделать это в R. Это не правильно, но это должно быть вдоль линий этого
for (i in 1:nrow(task)){
for (j in 1:ncol(actor)){
for (k in 1:ncol(task)){
result[i,j] <- sum(pmax(0,(task[i,k]-actor[k,j))
}
}
}
кто-нибудь есть какие-либо предложения о том, как атаковать Эта проблема?
Проверьте требуемый выход снова. Пожалуйста, объясните, как 'result [1,3]' стал '1', когда предоставленная вами формула приводит к' sum (pmax (0,1-1), pmax (0,3-6), pmax (0,3-4)) = 0' –
Извините, я подсчитал это в своей голове. Спасибо, что заметили это. – Conor
Второй ряд выключен. 'Результаты [2,1]' должны быть 'sum (pmax (0,2-1), pmax (0,5-2), pmax (0,1-4)) = 4'. Как вы ожидаете, что люди помогут вам, когда вы даже не сможете написать пример? И выньте снимок, это не помогает. –