作业帮 > 综合 > 作业

matlab 画一个函数中设定的函数的图像问题

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 16:52:17
matlab 画一个函数中设定的函数的图像问题
您好,我最近初学matlab遇到一个问题.
我现在有两个函数,一个函数a.m是
function out = a(x,y)
out = (sin(x)/x)*(sin(y)/y);
另有一个main函数
在main函数中如何画这个a.m里的图像呢?这个a.m是用来参与别的计算的,所以有可能会变.
我以前是这样的,在main.m里面这么弄,但是因为函数有时候会改,总不能每次都改main吧,
x=linspace(-10,10,500);y=x;[X,Y]=meshgrid(x,y);
Z = sin(X)./X + sin(Y)./Y;
mesh(X,Y,Z);
我也试过这样
x=linspace(-10,10,500);y=x;[X,Y]=meshgrid(x,y);
mesh(X,Y,a(X,Y));
但是出来的是空的.
更正下,Z =( sin(X)./X) *(sin(Y)./Y);
a.m改成这样试试:

function out = a(x,y)
out = (sin(x)./x)*(sin(y)./y);
再问: 您好,这样画出了一个平面
再答: 你提问内容里,a函数和第一个main函数使用了不同的算法。在a里,out = (sin(x)/x)*(sin(y)/y);;而在第一段main里Z = sin(X)./X + sin(Y)./Y。注意一个是乘法一个是加法,那么这样产生不同的结果很正常。你还是根据需求调整一下你的算法。
再问: 那个是笔误,已修正。结果仍然是平面。 好像是因为Z的分母为0的原因
再答: a函数里有括号,你的x,y都是矩阵,点乘和乘法顺序变了。你对比a和Z看看