【发布时间】:2011-02-19 18:02:53
【问题描述】:
我怎样才能把这个命令从mathematica写到matlab?
total = Apply[Plus, Flatten[mlat]]/L2
,其中 L2 是一个值,mlat 是一个矩阵。
【问题讨论】:
标签: matlab wolfram-mathematica flatten
我怎样才能把这个命令从mathematica写到matlab?
total = Apply[Plus, Flatten[mlat]]/L2
,其中 L2 是一个值,mlat 是一个矩阵。
【问题讨论】:
标签: matlab wolfram-mathematica flatten
简单写:
total = sum(mlat(:)) / L2
【讨论】:
Apply[Plus,list]是list中元素的总和,所以使用sum
对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,输出应该是相同的。
Total[mlat, -1]/L2,因为这意味着mlat 的所有级别的总和,即使mlat 是向量或张量,它的工作方式也与Flatten 相同.很抱歉,我从不使用 Matlab,因此无法提供帮助,但我很乐意帮助解释您需要翻译的任何 Mathematica 代码。不知道本站有没有私信功能;我是 StackOverflow 的新成员。