【问题标题】:Matlab: How to sum power nth of elements of a matrix rowise or column wise?Matlab:如何按行或按列对矩阵元素的第 n 个元素求和?
【发布时间】:2016-06-29 23:58:33
【问题描述】:

除了使用for循环(一种更快的vertorized格式)来计算矩阵行或列元素的第n次幂之和之外,还有其他方法吗?

【问题讨论】:

  • 发布您的循环。 “第 n 个元素的幂之和”没有多大意义。

标签: matlab matrix sum


【解决方案1】:

使用element-wise power operator

编辑:更正了列的总和(感谢@LuisMendo)。

对列求和:

n = 3; % nth power
res = sum(mat .^ n, 1)

对行求和:

n = 3; % nth power
res = sum(mat .^ n, 2)

【讨论】:

  • 对列求和res = sum(mat .^ n, 1),而不是res = sum(mat .^ n)mat 可能只有一行
  • @LuisMendo 让我想起了某个人 seen here 的某句话;)。
  • @rayryeng 确实! :-)
【解决方案2】:

没有具体的命令,但不需要for循环的解决方法如下:

例如如果n=3,即矩阵元素的三次方:

对于按列求和:

a=[1 2;3 4];

m = sum(a.*a.*a,1)

对于逐行求和:

a=[1 2;3 4];

m = sum(a.*a.*a,2)

【讨论】:

  • 从你问这个问题和你的答案之间的时间差来看,我觉得你试图把这个问题变成一个问答题,你在回答你自己提出的问题。不幸的是,您的要求和答案质量低下。例如,许多 MATLAB 用户都知道逐元素幂运算(即.^)。恐怕这个问题和答案对 StackOverflow 没有价值。具体来说,在您的情况下,您为什么不直接使用a.^3 而不是a.*a.*a?对于n 的任何值,它只是a.^n 否?
猜你喜欢
  • 2017-09-30
  • 2021-12-31
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
  • 2016-03-24
  • 2023-03-03
  • 1970-01-01
相关资源
最近更新 更多