まず、この問題は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ループのない適切なソリューションがあるかどうかを知りたいと思います。