matlab所有元素求和,数组–MATLAB对数组值表达式的所有元
matlab数组赋值素求和
所以我现在⼀直在想这个问题.总结⼀些变量A就像这样简单
sum(A(:))
% or
sum(...sum(sum(A,n),n-2)...,1) % where n is the dimension of A
然⽽,⼀旦它到达,(:)不再起作⽤,⽐如
sum((A-2*A)(:))
是没有有效的语法,⽽是我们需要编写
foo = A-2*A;
sum(foo(:))
%or the one liner
sum(sum(...sum(A-2*A,n)...,2),1) % n is the dimension of A
如果A的尺⼨是固定的,那么上⾯的⼀个衬垫将起作⽤,这取决于你正在做什么,可能不⼀定是这种情况.这两⾏的缺点是,foo将被保存在内存中,直到你运⾏清晰的foo或甚⾄可能不可能,具体取决于A的⼤⼩以及⼯作区中的其他内容.
有没有⼀种通⽤的⽅法来规避这个问题,并在⼀⾏中总结数组值表达式的所有元素/⽽不创建时间变量?像sum这样的东西(A-2 * A,’ –all’)?
虽然可以通过链接中给出的答案解决我的问题,但是gnovice⾃⼰说使⽤subref是⼀个相当丑陋的解决⽅案. Andras Deak在下⾯的评论中发布了更为清晰的⽅式.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论