.*
- элементный оператор, randn(n)
возвращает массив размера n, 0,5 - скаляр, Matlab не транслируется автоматически как numpy.
Если вы хотите, чтобы каждый элемент умножалсяна 0,5 вы можете сделать это напрямую, и если вам нужно использовать широковещание, посмотрите на fuction bsxfun(fun,A,B)
, однако bsxfun
склонен к проблемам с памятью, поэтому будьте осторожны.Но он имеет мощное неявное расширение.
Чтобы узнать больше о bsxfun
посещении https://www.mathworks.com/help/matlab/ref/bsxfun.html
Если это не решит вашу проблему, вам может потребоваться предоставить немного больше вашихкод или переменная информация, присутствующая в рабочей области.
PS: широковещание обычно называется расширением в документах Matlab, и это происходит из-за того, что меньший массив «транслируется» или «расширяется» по большому массиву, так чтоони имеют совместимые формы.В большинстве случаев это расширение является чисто символическим и фактически не помещает больше переменных в область видимости, а просто повторяет (повторно использует) имеющиеся переменные.