сгладить из математики в матлаб

как я могу написать эту команду из математики в матлаб?

total = Apply[Plus, Flatten[mlat]]/L2

,где L2 — значение, а mlat — матрица.


person George    schedule 19.02.2011    source источник


Ответы (2)


Просто напишите:

 total = sum(mlat(:)) / L2
person Marin    schedule 19.02.2011
comment
В результате он должен дать мне одно число, а не матрицу. (млат=2*раунд(ранд(L,L))-1) - person George; 19.02.2011
comment
Apply[Plus,list] – это сумма элементов list, поэтому используйте sum. - person Yaroslav Bulatov; 19.02.2011
comment
извините, как сказал ярослав, просто sum() то, что я написал, поэтому sum(mlat(:)/L2) - person Marin; 19.02.2011
comment
Спасибо за ответ. Чтобы принять одно значение, мне нужно сделать mlat (:), поэтому, если у меня есть Apply [Plus, mlat], я делаю sum (mlat (:)) правильно? Если у меня есть Apply[Plus,Flatten(mlat)], что мне делать? - person George; 19.02.2011
comment
Хорошо, спасибо, если у меня есть Apply[Plus,list] --›› sum(list) и если у меня Apply[Plus,Flatten[list]] --... sum(list(:)) - person George; 20.02.2011

Для Matlab не поможет, но в Mathematica вы можете просто написать

total = Total[mlat, -1]/L2

на месте

total = Apply[Plus, Flatten[mlat]]/L2
person Mr.Wizard    schedule 19.02.2011
comment
Хорошо, спасибо. Но я думаю, что в моем примере 2 в Total[mlat,2] не должно существовать, если я правильно понял. - person George; 20.02.2011
comment
@ Джордж Я предположил, что mlat - это двумерный массив, а не тензор большей глубины или простой вектор. В исходной версии Flatten[mlat] создает вектор всех элементов массива mlat, а Apply[Plus, ...] дает сумму элементов этого вектора. Total[mlat, 2] дает сумму mlat до уровня 2, другими словами, сумму всех элементов в mlat. Следовательно, для двумерного массива mlat выходы должны быть одинаковыми. - person Mr.Wizard; 21.02.2011
comment
@George Мне приходит в голову, что лучшей заменой будет Total[mlat, -1]/L2, потому что это означает суммирование всех уровней mlat и будет работать так же, как Flatten, даже если mlat является вектором или тензором. Мне жаль, что я не могу помочь с Matlab, так как я никогда не использую его, но я буду рад помочь объяснить любой код Mathematica, который вам нужно перевести. Я не знаю, есть ли на этом сайте функция личных сообщений; Я новый участник StackOverflow. - person Mr.Wizard; 22.02.2011