首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scilab:索引无效

Scilab:索引无效
EN

Stack Overflow用户
提问于 2018-11-29 20:38:37
回答 1查看 1.6K关注 0票数 0

我尝试计算10个矩阵条目的平均值(1:10、2:11、3:12等等),然后根据这些平均值生成一个新的矩阵。但是,它总是给我无效的索引。

代码语言:javascript
运行
复制
A=rand(150,1);
number_of_rows=size(A,1);
for i=1:number_of_rows
  B=mean(A(i:i+9,1),1);
  C(i,:)=B;
end
EN

回答 1

Stack Overflow用户

发布于 2021-01-29 23:04:45

对于任意窗口的长度n,下面的简单代码就能做到这一点:

代码语言:javascript
运行
复制
A = grand(1,40,"uin",0,9)
n = 10;

C = [0 cumsum(A)];
C = (C(n+1:$)-C(1:$-n))/n

结果(示例):

代码语言:javascript
运行
复制
-->     A = grand(1,40,"uin",0,9)
 A  = 
         column 1 to 24
   3.   2.   2.   9.   2.   6.   1.   5.   1.   5.   7.   2.   5.   8.   3.   0.   3.   8.   3.   3.   4.   8.   8.   1.

         column 25 to 40
   4.   2.   0.   8.   5.   8.   5.   3.   7.   3.   1.   8.   8.   0.   0.   4.

-->     n = 10;
-->     C = [0 cumsum(A)];
-->     C = (C(n+1:$)-C(1:$-n))/n
 C  = 
         column 1 to 20
   3.6   4.   4.   4.3   4.2   4.3   3.7   3.9   4.2   4.4   4.2   3.9   4.5   4.8   4.1   4.2   4.4   4.1   4.1   4.3

         column 21 to 31
   4.8   4.9   4.4   4.3   4.5   4.2   4.8   5.6   4.8   4.3   3.9

--> mean(A(1:n))
 ans  =
   3.6

但是,cumsum()将传播属于A的任何Inf或NaN值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53539269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档