Why am I not getting an array of values?

13 次查看(过去 30 天)
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

采纳的回答

Voss
Voss 2022-3-9
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

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Operators and Elementary Operations 的更多信息

标签

产品


版本

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by