Hello, I have an array of values in "In", I would like to extract the samples in "In" between the indices specified in "SIdx" and "EIdx". SIdx and EIdx are also arrays.
1 回表示 (過去 30 日間)
古いコメントを表示
I would like to acheive the functionality without using a for loop. Currently the code is written as
Working Code :
In = 1:100;
SIdx = [1 9 33 76];
EIdx = [5 13 42 83];
Out = {};
for i = 1:length(SIdx)
Out = [Out; {In(SIdx(i):EIdx(i))}];
end
Out =
4×1 cell array
{[ 1 2 3 4 5]}
{[ 9 10 11 12 13]}
{[33 34 35 36 37 38 39 40 41 42]}
{[ 76 77 78 79 80 81 82 83]}
Is there a way to acheive the same functionality without using a for loop.
0 件のコメント
採用された回答
その他の回答 (1 件)
Walter Roberson
2024 年 3 月 9 日
In = 1:100;
SIdx = [1 9 33 76];
EIdx = [5 13 42 83];
Out = arrayfun(@(S,E) In(S:E), SIdx, EIdx, 'uniform', 0).'
参考
カテゴリ
Help Center および File Exchange で Array Geometries and Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!