Filter löschen
Filter löschen

Vector slicing for loop

100 Ansichten (letzte 30 Tage)
P Walter
P Walter am 17 Mai 2020
Beantwortet: Ang Feng am 17 Mai 2020
I'm very new to Matlab and stuck right now with a for loop. I'd like to slice the array and grab blocks of 512 Samples. I want to grab the 10 blocks and write them into a new array. My following Code only grabs the first block.
for i=1:10;
blockindex=0;
startpoint = ((blockindex -1)*512)+1;
endpoint = ((blockindex) * 512)+1;
helparray = sound6_(startpoint:1:endpoint);
mic1 = [mic1; + helparray];
blockindex = blockindex + 40;
end
plot(mic1);

Antworten (1)

Ang Feng
Ang Feng am 17 Mai 2020
I am not 100% sure about what you want to do exactly by 'slice'. If you want to rearrange the signal to a specific format, then the reshape function helps you do that. See the link to reshape:
For a signal stored as array A, and you can just reshape A by the dimension you specify
n = floor(numel(A)/512);
B = reshape(A,[512 n]);
The you have columns of B is a vector of 512 elements, and save the first 10 columns to a new variable is easy.
C = B(:,1:10);
numel is the function to find the number of elements of a matrix.

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by