在MATLAB中绘制函数

3
我在Matlab中绘制以下函数时遇到了问题:
x = 10*((sin(pi*f*0.1))/(pi*f*0.1))^2;

我正在使用以下代码:

我正在使用这段代码:

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

我可以使用我在谷歌上找到的绘图工具绘制函数,但是MATLAB只给我一个空白的图。坐标轴也不对应我应该得到的结果。
有人知道为什么这个图形没有显示出预期的结果吗?
1个回答

6
你需要使用逐元素除法(./),而不是尝试解决线性系统的mrdivide (/)。同样地,你需要使用逐元素幂运算 (.^),而不是矩阵幂运算mpower (^)
x = 10 * ((sin(pi * f * 0.1)) ./ (pi * f * 0.1)).^2;

运算符中的.在处理标量时是微妙的,不必要的;然而,在处理多维数组时,如果想要元素级行为,则必须使用它。
另外,为了保持一致性,我建议交换fx,这样你就有一个函数f(x)
x = -50:0.1:50;
f = 10 * ((sin(pi * x * 0.1)) ./ (pi * x * 0.1)).^2;
plot(x, f)

太好了。非常感谢。 - smith1993
我怀疑他是另一个给出相同答案的回答者。 - Sardar Usama
2
@Sardar_Usama 哈哈,我懂了。脾气不好的人 :) - Suever
如果这个答案解决了你的问题,点击答案左侧的[](http://meta.stackexchange.com/a/5235/335102)标记来将其标记为接受的答案。@smith1993 - Sardar Usama
@smith1993 如果这个回答解决了你的问题,请考虑接受这个答案。谢谢 :) 我也会点赞作为补偿 :) - Tony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接