我有2560个样本点。我想计算前512个点的平均方差偏度峰度,接下来的512个等等。所以总共有5组输出数据。我想在图表中绘制5组均值,var,skew,kur值。
我从excel中读取了包含2560个点的数据
x=xlsread('dta.xls');
i=1:512;
y=x(i)
m=mean(y);
v=var(y);
i=513:1024;
y=x(i)
m=mean(y);
v=var(y);
i=1025:1536
y=x(i)
m=mean(y);
v=var(y);
plot(m)
plot(v)
这是我的代码。我尝试使用for循环,但我无法做到。
答案 0 :(得分:1)
尝试这样的事情:
x = xlsread('dta.xls');
ns = length(x); % number of samples
bs = 512; % bin size
bc = floor(ns / bs); % bin count
m = zeros(bc, 1); % array of means
v = zeros(bc, 1); % array of variances
for i = 1 : bc
i1 = (i - 1) * bs + 1;
i2 = i * bs;
b = x(i1 : i2); % current bin
m(i) = mean(b);
v(i) = var(b);
end;
figure;
subplot(211); plot(m, '.-');
subplot(212); plot(v, '.-');
Here是一个有效的例子。
答案 1 :(得分:0)
除托比亚斯外:
如果我错了,请纠正我,但在我看来,i=1:512 + 512*j
始终以1开头。
在问题中,它应该是每次下一次512.所以我将其更改为:
for j=0:4
i=512*j+1 : 512+512*j
y=x(i)
m=mean(y);
v=var(y);
plot(m)
plot(v)
end