for i=1:95:size(winddata_1,1) for j=1:1:32 % 日出力均值 mean_power(j,:) = mean(winddata_1(i:i+95,:)); % 日出力标准差 std_power(j,:)= std(winddata_1(i:i+95,:)); % 日出力峰度 kurt_power(j,:)= kurtosis(winddata_1(i:i+95,:)); % 日出力偏度 skew_power(j,:)= skewness(winddata_1(i:i+95,:)); % 日出力最大值 max_power(j,:)= max(winddata_1(i:i+95,:)); % 日出力最小值 min_power(j,:)= min(winddata_1(i:i+95,:)); end end winddata=[mean_power,std_power,kurt_power,skew_power,max_power,min_power];哪里错了
时间: 2024-04-16 09:23:57 浏览: 84
在你的代码中,有一个问题导致了错误。在外层的 for 循环中,你使用了 `i:i+95` 来选择数据,但是这样会导致索引超出范围。这是因为最后一次循环时,`i+95` 的值可能超过了 `winddata_1` 的行数。为了解决这个问题,你可以使用 `min(i+95, size(winddata_1,1))` 来确保不会超过索引范围。修改后的代码如下所示:
```matlab
for i=1:95:size(winddata_1,1)
for j=1:1:32
% 日出力均值
mean_power(j,:) = mean(winddata_1(i:min(i+95, size(winddata_1,1)),:));
% 日出力标准差
std_power(j,:)= std(winddata_1(i:min(i+95, size(winddata_1,1)),:));
% 日出力峰度
kurt_power(j,:)= kurtosis(winddata_1(i:min(i+95, size(winddata_1,1)),:));
% 日出力偏度
skew_power(j,:)= skewness(winddata_1(i:min(i+95, size(winddata_1,1)),:));
% 日出力最大值
max_power(j,:)= max(winddata_1(i:min(i+95, size(winddata_1,1)),:));
% 日出力最小值
min_power(j,:)= min(winddata_1(i:min(i+95, size(winddata_1,1)),:));
end
end
winddata=[mean_power,std_power,kurt_power,skew_power,max_power,min_power];
```
这样修改后,代码将会正确执行。
阅读全文