ascribe zeros to an array
Afficher commentaires plus anciens
I am new to matlab. I want to ascribe zeros to frequencies going from 1001 to 2048 after having built a spectrum from 1 to 1000.
How do I do it please.
f= 1001:2048;
2 commentaires
Rik
le 23 Sep 2023
Have a read here and here. It will greatly improve your chances of getting an answer.
If you have trouble with Matlab basics you may consider doing the Onramp tutorial (which is provided for free by Mathworks).
Nuks Kar
le 24 Sep 2023
Réponses (2)
frequencies = linspace(0, 2400, 250);
spectrum = rand(size(frequencies));
subplot(2,1,1); plot(frequencies, spectrum); title('before zeroing');
spectrum(frequencies >= 1001 & frequencies <= 2048) = 0;
subplot(2,1,2); plot(frequencies, spectrum); title('after zeroing')
1 commentaire
Nuks Kar
le 24 Sep 2023
Bruno Luong
le 24 Sep 2023
Modifié(e) : Bruno Luong
le 24 Sep 2023
To pad a vector with zeros you only need to set the last-element of the extended vector to 0
f=rand(1,5) % 1000 in your case
fpad = f; fpad(8)=0; fpad % 2048 in your case
Note that is you call fft/ifft on fpad, you don't even need to construct it, fft and ifft has the length in second argument that you can use to do fft on padded array without explicitly constructing it. Both of these return the same result
fft(fpad)
fft(f,8)
Catégories
En savoir plus sur MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
