通过数组进行Matlab迭代

时间:2015-02-26 08:49:59

标签: arrays matlab

我想通过一个数组迭代,并为每个交互存储一个特定的范围......像这样:

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

2 个答案:

答案 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