我想通过一个数组迭代,并为每个交互存储一个特定的范围......像这样:
CompleteRange = [5; 34; 6; 34; 67; 4; 6; 234; 6; 26; 246; 31; 43];
RangeWidow = 3;
for m = 0 : CompleteRange -1
Range = CompleteRange(m...RangeWindow...??
end
阵列"范围"应该在第一次迭代期间(m = 0):5; 34;或者例如在第三次迭代期间(m = 2):6; 234; 6。
您能否完成for循环中的代码行?
感谢您的帮助!
根据要求编辑1,预期输出:
Range: 5
34
6
Range: 34
67
4
Range: 6
234
6
Range: 26
246
31
答案 0 :(得分:1)
你的问题有点不清楚,但仅仅是:
Range= reshape(CompleteRange, RangeWindow, [])'
这假设completerange
的长度完全除以rangewindow
,如果它没有那么它就足以轻松填充NaN
s
答案 1 :(得分:1)
我想你要找的是:
for m = 1 : length(CompleteRange) - RangeWindow
Range = CompleteRange(m:m+RangeWindow)
end
由于matlab数组基于1而不是0,我冒昧地将循环更改为从1开始。
编辑:
如果您希望步骤为RangeWindow
而非1,请替换
for m = 1 : length(CompleteRange) - RangeWindow
使用:
for m = 1 : RangeWindow : length(CompleteRange) - RangeWindow