Matlab 每30个点做运算
想对矩阵中的每30个点做运算,不满足30个点则跳过。不知道怎么对30个点来进行循环。
对你的描述表示不太理解
如果是一个m*n的矩阵,你要对矩阵中的每30个点,是怎么计算数量的。
以上疑问暂且不表
假设矩阵A是一个1*m或m*1的矩阵,如果要对矩阵中每30个点做运算,以下给出取这30个点的一种方法
L = length(A);
n = floor(L/30);
for i = 1 : n
B = A(i*30 - 29 : i * 30);
C = mean(B);
D = std(B);
end
以上循环中每次取出30个元素记为B,C对这30个元素求平均,D对这30个元素求标准差。
如果A是m*n的,要对A依次取30个,只需要转换下下标,其实也是一样的,只是不知道你到底想做什么。
我的意思是想取列矩阵的点,第一部分是1:30,第二部分31:60这样取区间,然后算mean和std,给出一个阈值( mean+3*std)如果大于直接删除此点。以此方法对整个矩阵做个删减。
不好意思,个人表达能力一直很差
我已经完成每次区间的运算,并且保留了Mean和Std的值,就是在做点的删减的时候,程序run了一遍之后,我的Data就少了一行,感觉有点困惑。
跟我以前直接拿整段来做的时候,也没区别。
很简单啊,你不要在每次运行的时候就把它删掉,设计一个变量存下你要删的行数,最后运行完再删就好了;或者你就不要用for循环,设计一个位置标记符让它一直往前跑,每次做删除的时候把标记符向前调一位。
页:
[1]