プロットしたい分散を計算するループがあります。
for k = [1:3]
disp(B.colheaders{1, k});
%disp(B.data(1:79, k + 1));
for j = [1:10:79]
disp(j)
Variance = var(B.data(j:j+8, k))
end
%disp(V)
plot(Variance)
end
すべてをプロットできるように、分散を配列または行列に保存するにはどうすればよいですか?
プロットしたい分散を計算するループがあります。
for k = [1:3]
disp(B.colheaders{1, k});
%disp(B.data(1:79, k + 1));
for j = [1:10:79]
disp(j)
Variance = var(B.data(j:j+8, k))
end
%disp(V)
plot(Variance)
end
すべてをプロットできるように、分散を配列または行列に保存するにはどうすればよいですか?
ループを維持したい場合の方法は次のとおりです。
figure,hold on %# avoid erasing the previous plots
for k = [1:3]
disp(B.colheaders{1, k});
%disp(B.data(1:79, k + 1));
startIdx = [1:10:79];
Variance = zeros(size(startIdx));
for j = startIdx
disp(j)
Variance(j==startIdx) = var(B.data(j:j+8, k))
end
%disp(V)
plot(Variance)
end
内側のループをスキップする方法は次のとおりです
figure,hold on
for k = [1:3]
disp(B.colheaders{1, k});
%disp(B.data(1:79, k + 1));
startIdx = [1:10:79];
varIdx = bsxfun(@plus,startIdx,(0:7)'); %# create array for indexing
currentData = B.data(:,k);
%# calculate variance for each column
Variance = var(currentData(varIdx),1,1);
plot(Variance)
end