matlab利用矩阵运算替代cumsum函数

例题:请列举出\sum_{k=0}^{\infty }p^{k}的前10项:

一般的,我们会运用cumsum函数解决这个问题:

p = 2;
k = [0:10];
G = p.^k;
stuff_1 = [cumsum(G)]'

运行结果:

stuff_1 =

           1
           3
           7
          15
          31
          63
         127
         255
         511
        1023
        2047

笔者认为这里也可以用矩阵运算的方式对cumsum函数进行替代:

matrix_1 = [p.^k]';% 列出没有求和的前k项
matrix_big = repmat(matrix_1,1,12);% 将matrix_1平铺成方阵
matrix_half = triu(matrix_big,1);% 截取上三角矩阵
stuff_2 = [sum(matrix_half)]'% 对上三角矩阵按列求和

运行结果:

stuff_2 =

           0
           1
           3
           7
          15
          31
          63
         127
         255
         511
        1023
        2047
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值