简体   繁体   中英

Plotting function in MATLAB

I am having a problem plotting the following function in Matlab:

x = 10*((sin(pi*f*0.1))/(pi*f*0.1))^2;

I am using this code:

f = -50:0.1:50;
x = 10*((sin(pi*f*0.1))/(pi*f*0.1))^2;
plot (f,x);

I can plot the function using a graph tool I found on google but MATLAB is just giving me a blank plot. The axis don't correspond to what I should be getting either.

Does anyone know why this graph doesn't appear as it should?

You need to use element-wise division ( ./ ) rather than mrdivide ( / ) which attempts to solve a linear system. Similarly, you need to use the element-wise power ( .^ ) rather than the matrix power, mpower ( ^ ) .

x = 10 * ((sin(pi * f * 0.1)) ./ (pi * f * 0.1)).^2;

The . in the operator is subtle and not necessary when working with scalars; however you must use it if you want element-wise behavior when working with multi-dimensional arrays.

Also to be consistent with common conventions, I'd recommend switching f and x so you have a function f(x)

x = -50:0.1:50;
f = 10 * ((sin(pi * x * 0.1)) ./ (pi * x * 0.1)).^2;
plot(x, f)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM