首先,这个问题很容易用 for 循环解决。但是,我试图强迫/教自己以矢量方式思考,以利用 Matlab 最擅长的东西。
简化,这里是问题解释:
- 我有一个包含数据的向量。
- 我有一个 2xN 的开始/停止索引数组,代表向量中有趣数据的范围。
- 我想对这些范围中的每一个执行计算,得到一个数字(N 个结果,对应于每个开始/停止范围。)
在代码中,这是我希望最后拥有的伪示例:
A = 1:10000;
startIndicies = [5 100 1000];
stopIndicies = [10 200 5000];
...
calculatedResults = [func(A(5:10)) func(A(100:200)) func(A(1000:5000))]
A 的长度和开始/停止索引数组的长度是可变的。
就像我说的,我可以用 for 循环轻松解决这个问题。但是,由于可以与大型数据集一起使用,我想知道是否有没有 for 循环的好的解决方案。