Arrays 矩阵迭代法

Arrays 矩阵迭代法,arrays,matlab,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; 6.或者例如在第三次迭代期间(m=2):6

我想通过一个数组进行迭代,并为每个迭代存储一个特定的范围…如下所示:

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; 6.或者例如在第三次迭代期间(m=2):6;234; 六,

请在for循环中完成代码行,好吗

谢谢你的帮助

按要求编辑1,预期输出:

Range: 5 
       34
       6
Range: 34
       67
       4
Range: 6
       234
       6
Range: 26
       246
       31

你的问题有点不清楚,但你的问题是:

Range= reshape(CompleteRange, RangeWindow, [])'

这假设
completerange
的长度完全除以
rangewindow
,如果没有,那么就很容易用
NaN
s

填充。我想你要找的是:

for m = 1 : length(CompleteRange) - RangeWindow

   Range = CompleteRange(m:m+RangeWindow)

end
因为matlab数组是基于1而不是基于0的,所以我冒昧地将循环更改为从1开始

编辑: 如果希望步骤为
范围窗口而不是1,请更换

for m = 1 : length(CompleteRange) - RangeWindow
与:


请编辑您的问题,以添加您正在矩阵形式查找的完整输出。我相信你可以手动计算,但是你的问题很不清楚。对于每次迭代,范围“窗口”应该移到“补全范围”上。是的,但是你想把它作为2D矩阵吗?或者直接打印到屏幕上。请将您的
范围
变量更改为实际的Matlab样式的数据类型,以便我们知道您想要什么。但是您在每次迭代中都会覆盖
范围
。。。?另外,你每次都是按
1
元素移位,而不是按
3
我想这就是op的意思。这正是我想要的。我在for循环中用于进一步处理(函数参数)的“Range”变量。被调用函数的结果将存储在另一个变量中。现在一切都好了。谢谢大家!@Kevin如果你想让
范围
与你提供的输出真正匹配,那么你可以像这样循环:
或m=1:RangeWindow:(长度(CompleteRange)-RangeWindow)
,也就是说,以你的窗口大小为步长,这样你的数据就不会重叠。@TalDarom-请不要生气,但我相信这绝对是胡说八道。你有证据证明你的说法吗?@TalDarom-我有。这就是我好奇的原因。你能提供一份推荐信吗?@TalDarom我问之前在谷歌上搜索了一下,什么也没找到。。。这就是为什么我asked@TalDarom对不起,我什么也没找到。我输入了准确的查询。。。他们两个实际上。。。他们只给了我一个2005年MathWorks论坛的链接。这本书已经有10年历史了,很难成为权威参考书。我就到此为止,把它归为虚构的。祝你好运@TalDarom在Matlab中试用过,但它不适用。我假设matlab矩阵对象有更多的开销,并且可能已经假设需要考虑NAN。然后使用的操作所用的时间与不使用的操作所用的时间相同(根据经验测试)。仅仅因为它是C++问题,并没有把它变成一个Matlab问题。你有任何例子证明这是在MATLAB中进行的广告实践吗?
for m = 1 : RangeWindow : length(CompleteRange) - RangeWindow