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
将是选择的武器