Why am I not getting an array of values?

5 Ansichten (letzte 30 Tage)
Justin Goh
Justin Goh am 9 Mär. 2022
Kommentiert: Justin Goh am 10 Mär. 2022
I am trying to plot a sinc function and eventually use it for a convolution. The sinc function is defined as h = sin(n*pi/2)/(n*pi/2), where n = -7:7.
When I run my code as is, ith becomes a single value instead of an array. However I noticed that if I define my function as h = sin(n*pi/2), h becomes an array of 1x15, which is what I want. Can somebody explain why this happens and how to go about this.
Thank you in advance.
n = -7:7; % an array of 1x15
p = (pi*n/2);
h = sin(pi*n/2)/(pi*n/2); % this becomes a single value
h1 = sin(p)/p; % this becomes an array of 1x15

Akzeptierte Antwort

Voss
Voss am 9 Mär. 2022
Use element-wise division, ./
n = -7:7; % an array of 1x15
p = (pi*n/2);
h = sin(pi*n/2)./(pi*n/2) % this becomes an array of 1x15
h = 1×15
-0.0909 0.0000 0.1273 -0.0000 -0.2122 0.0000 0.6366 NaN 0.6366 0.0000 -0.2122 -0.0000 0.1273 0.0000 -0.0909
h1 = sin(p)./p % this becomes an array of 1x15
h1 = 1×15
-0.0909 0.0000 0.1273 -0.0000 -0.2122 0.0000 0.6366 NaN 0.6366 0.0000 -0.2122 -0.0000 0.1273 0.0000 -0.0909
isequaln(h,h1)
ans = logical
1

Weitere Antworten (0)

Tags

Produkte


Version

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by