Extracting multiple subarrays from a given array in a loop, when the corresponding mulitple start- and end-point pairs are given

7 次查看(过去 30 天)
Assume I have an array of given size, say 100. I have 5 pairs which specify the start and end-point indices of the subarrays I would like to extract from the original array.
How to do this task in a for loop and in each iteration, store the subarray in a different vector? (because all subarrays may not be of same size)

采纳的回答

Daniel
Daniel 2023-9-12
You can create a cell array with curly braces:
cellArray = {};
Elements of a cell array can be anything, for instance variable-size vectors. Even the data types can be different, though that's not relevant to your question.
cellArray{1} = [1 2 3];
cellArray{2} = [single(4)];
cellArray{3} = false;
cellArray{4} = dsp.SineWave;
You can read the cell array the same way as writing it:
for i=1:length(cellArray)
cellArray{i}
end
ans = 1×3
1 2 3
ans = single 4
ans = logical
0
ans =
dsp.SineWave with properties: Amplitude: 1 Frequency: 100 PhaseOffset: 0 ComplexOutput: false Method: 'Trigonometric function' SamplesPerFrame: 1 SampleRate: 1000 OutputDataType: 'double'
Now if you store your starting and ending indices in an appropriate matrix (say 5x2), you can create your cell array of variable-size vectors iteratively in a for loop.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrices and Arrays 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by