gpt4 book ai didi

matlab - 将不同的 K 值 block 添加到向量中

转载 作者:行者123 更新时间:2023-12-02 09:21:12 25 4
gpt4 key购买 nike

我有一个名为,

A= [2;3;4;5;6;7];

我想引入一个名为K的变量。如果“K”的值为 1 那么我将得到与输出相同的结果。但是,如果 K 的值为 2 那么我期望输出向量为:

output= [2+3;4+5;6+7];

如果K的值为3那么我的输出将是:

output= [2+3+4;5+6+7];

此外,我们可以放心地假设 A 中的元素总数可以被 K 整除。对于专家来说,这也许是一个愚蠢的问题,但我真的很感激在这种情况下的指导。

最佳答案

假设 A 中的元素数量可被 K 整除,您可以使用一些 reshape 和求和,如下所示 -

sum(reshape(A,K,[]),1)

示例运行

输入:

A =
2
3
4
5
6
7

运行#1:

>> K = 2;
>> reshape(A,K,[])
ans =
2 4 6
3 5 7
>> sum(reshape(A,K,[]),1)
ans =
5 9 13

运行#2:

>> K = 3;
>> reshape(A,K,[])
ans =
2 5
3 6
4 7
>> sum(reshape(A,K,[]),1)
ans =
9 18
<小时/>

如果 A 中的元素数量不能被 K 整除,则可以使用 vec2mat来自Communications System Toolbox,就像这样 -

sum(vec2mat(A,K).',1) %// OR sum(vec2mat(A,K),2)

示例运行

A =
2
3
4
5
6
7
8
9

运行#1:

>> K = 2;
>> vec2mat(A,K).'
ans =
2 4 6 8
3 5 7 9
>> sum(vec2mat(A,K).',1)
ans =
5 9 13 17

运行#2:

>> K = 3;
>> vec2mat(A,K).'
ans =
2 5 8
3 6 9
4 7 0
>> sum(vec2mat(A,K).',1)
ans =
9 18 17

关于matlab - 将不同的 K 值 block 添加到向量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33834975/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com