Matlab 如何使用for循环解决我的问题

Matlab 如何使用for循环解决我的问题,matlab,Matlab,我有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

我有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循环,但未能成功。

尝试以下方法:

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, '.-');
是一个工作示例。

除了Tobias: 如果我错了,请纠正我,但在我看来,
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

你能详细说明你到目前为止试过什么吗?这不是已经很有用了吗?啊,是的,应该是
[1:512]+512*j
,但我删除了答案,因为OP没有表现出任何努力