Matlab 如何添加矩阵元素以创建新矩阵?

Matlab 如何添加矩阵元素以创建新矩阵?,matlab,Matlab,假设我有一个矩阵 x = [1 2 3 4 ] 我想创建一个矩阵,将两个元素相加,输出第三个元素 y = [1+2 3+4] y = [3 7] 对于四个值,我可以只做y=[x(1)+x(2)x(3)+x(4)]。 如果x更大、更可变(比如说一千个元素),我该怎么做呢?我该如何编程 我已经为此挣扎了两天了。。。提前感谢…一个简单的方法是将原始数组x重塑为一个包含k行的矩阵,k是要求和的元素数(这里是2,抱歉,我不知道如何解释),然后在这个矩阵上调用sum,它将计算每列的和,并将其输出到一个

假设我有一个矩阵

x = [1 2 3 4 ] 
我想创建一个矩阵,将两个元素相加,输出第三个元素

y = [1+2 3+4]
y = [3 7]
对于四个值,我可以只做y=[x(1)+x(2)x(3)+x(4)]。 如果x更大、更可变(比如说一千个元素),我该怎么做呢?我该如何编程


我已经为此挣扎了两天了。。。提前感谢…

一个简单的方法是将原始数组
x
重塑为一个包含k行的矩阵,k是要求和的元素数(这里是2,抱歉,我不知道如何解释),然后在这个矩阵上调用
sum
,它将计算每列的和,并将其输出到一个新的向量
y

例如:

x = [1:10] 

block = 2

r = reshape(x,block,[])
所以这里的
r
看起来像这样:

r =

     1     3     5     7     9
     2     4     6     8    10
因此,使用
r
上的第一个维度调用
sum
,得到以下结果:

y = sum(reshape(x,block,[]),1)

y =

     3     7    11    15    19

一种简单的方法是将原始数组
x
重塑为一个包含k行的矩阵,k是要求和的元素数(这里是2,对不起,我不知道如何解释),然后在这个矩阵上调用
sum
,它将计算每列的和,并将其输出到一个新的向量
y

例如:

x = [1:10] 

block = 2

r = reshape(x,block,[])
所以这里的
r
看起来像这样:

r =

     1     3     5     7     9
     2     4     6     8    10
因此,使用
r
上的第一个维度调用
sum
,得到以下结果:

y = sum(reshape(x,block,[]),1)

y =

     3     7    11    15    19

哇!谢谢重塑是惊人的!哇!谢谢重塑是惊人的!如果您需要更高级的求和,如为每个
y
求和的元素数量不等,
accumarray
将是选择的武器如果您需要更高级的求和,如为每个
y
求和的元素数量不等,
accumarray
将是选择的武器