Если вы действительно хотите много делать после определения матрицы, вы всегда можете сделать оператор самостоятельно:
'%mat%'<- function(x,y)t(t(x)*y)
matrix(1,7,5)%mat%1:5
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 1 2 3 4 5
[3,] 1 2 3 4 5
[4,] 1 2 3 4 5
[5,] 1 2 3 4 5
[6,] 1 2 3 4 5
[7,] 1 2 3 4 5
Но я думаю, что проще просто перенести дважды, как вы сказали в вопросе:
t(t(matrix(1,7,5))*1:5)
Или, конечно, выбрать транспонирование матрицы один раз в начале, сделать все, что нужно с ней, а затем транспонировать ее обратно.
Насколько я знаю, нет никакого способаизменить поведение по умолчанию *, и вы, вероятно, тоже не захотите,