2013-08-27 3 views
-2

2560 샘플 포인트가 있습니다. 첫 번째 512 점, 다음 512 점에 대한 평균 분산 왜곡 kurtosis를 계산하려고합니다. 그래서 5 세트의 출력 데이터. 그래프에 mean, var, skew, kur 값의 5 세트를 플롯하고자합니다. 내 문제의 루프를 사용하는 방법

나는 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 루프를 사용했지만 루프를 만들 수 없었다. 이 같은

+2

지금까지 시도한 것을 자세히 설명해 주실 수 있습니까? [documentation for] (http://www.mathworks.com/help/matlab/matlab_prog/loop-control-statements.html)가 이미 도움이되지 않았습니까? –

답변

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은 작업 예입니다. 토비아스 외에도

0

:

: 내가 틀렸다하지만 내가이 변경이 i=1:512 + 512*j가 항상 매번 그래서 다음 512이어야한다 질문 1. 로 시작하는 나에게 보이는 경우에 저를 수정
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 
+0

아, 예,'[1 : 512] + 512 * j'와 같았 습니다만, OP의 노력이 부족하기 때문에 답을 삭제했습니다. –

관련 문제