матлабоподобные поэлементные операции над несоответствующими массивами в r

#r #arrays #matlab

#r #массивы #matlab

Вопрос:

Каков наиболее простой способ воспроизвести следующее поведение MATLAB в R?

 reshape(1:6, [3, 1, 2]) - reshape(6:-1:1, [1, 3, 2])  ans(:,:,1) =   -5 -4 -3  -4 -3 -2  -3 -2 -1   ans(:,:,2) =   1 2 3  2 3 4  3 4 5  

Очевидно, несовместимые в R:

 array(1:6, dim = c(3, 1, 2)) - array(6:1, dim = c(1, 3, 2)) Error in array(1:6, dim = c(3, 1, 2)) - array(6:1, dim = c(1, 3, 2)) :   non-conformable arrays  

Комментарии:

1. Я не знаю R, но в случае, если это помогает в поиске, такое поведение обычно называется «широковещательным» (хотя в Matlab оно имеет другое название).

2. @LuisMendo, спасибо тебе. Ваша подсказка привела меня к rray посылке. rray(1:6, c(3, 1, 2)) - rray(6:1, c(1, 3, 2)) работает по желанию.

3. Отлично! Это может быть хорошим вопросом для пользователей R, не очень хорошо разбирающихся в языке или пакете; если у вас есть время, возможно, добавьте расширенную версию своего комментария в качестве ответа