как я могу написать эту команду из математики в матлаб?
total = Apply[Plus, Flatten[mlat]]/L2
,где L2 — значение, а mlat — матрица.
как я могу написать эту команду из математики в матлаб?
total = Apply[Plus, Flatten[mlat]]/L2
,где L2 — значение, а mlat — матрица.
Просто напишите:
total = sum(mlat(:)) / L2
Apply[Plus,list]
– это сумма элементов list
, поэтому используйте sum
.
- person Yaroslav Bulatov; 19.02.2011
Для Matlab не поможет, но в Mathematica вы можете просто написать
total = Total[mlat, -1]/L2
на месте
total = Apply[Plus, Flatten[mlat]]/L2
mlat
- это двумерный массив, а не тензор большей глубины или простой вектор. В исходной версии Flatten[mlat]
создает вектор всех элементов массива mlat, а Apply[Plus, ...]
дает сумму элементов этого вектора. Total[mlat, 2]
дает сумму mlat
до уровня 2, другими словами, сумму всех элементов в mlat
. Следовательно, для двумерного массива mlat
выходы должны быть одинаковыми.
- person Mr.Wizard; 21.02.2011
Total[mlat, -1]/L2
, потому что это означает суммирование всех уровней mlat
и будет работать так же, как Flatten, даже если mlat
является вектором или тензором. Мне жаль, что я не могу помочь с Matlab, так как я никогда не использую его, но я буду рад помочь объяснить любой код Mathematica, который вам нужно перевести. Я не знаю, есть ли на этом сайте функция личных сообщений; Я новый участник StackOverflow.
- person Mr.Wizard; 22.02.2011