求解释matlab语言,看不懂什么意思,> x=-8:0.5:8; y=x'; X=ones(size(y))*x; Y=y*ones(size(x));
R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;mesh(Z);colormap([1,0,0])...
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R)./R;
mesh(Z);
colormap([1,0,0]) 展开
Z=sin(R)./R;
mesh(Z);
colormap([1,0,0]) 展开
2个回答
展开全部
x=-8:0.5:8;表示从-8到8以步长(间隔)0.5取数生成行数组(一行共33个数,-8 -7.5 -7.0......7.0 7.5 8)。y=x';表示y为x的转置,生成列数组(一列共33个数,与x值一样)。X=ones(size(y))*x; 中,ones函数用于生成全一数组(即数组中全部元素都是1),size(y)表示求取y的大小,其值应为[33 1];ones(size(y))就是生成一个33×1的全一列数组,X=ones(size(y))*x就是用33×1的全一列数组与行数组x做矩阵乘法,得到X为33×33的二维数组(每一行都是33个数,-8 -7.5 -7.0......7.0 7.5 8,总共33行);同理,Y也为33×33的二维数组(每一列都是33个数,-8 -7.5 -7.0......7.0 7.5 8,总共33列);R=sqrt(X.^2+Y.^2)+eps;中X.^2表示对X做数组乘方运算,即对X中的每一个元素做平方,sqrt表示开平方,eps表示机器浮点运算误差限,是一个很小的值 2^(-52),在此其作用在于不让下一步的运算(Z=sin(R)./R;)产生分母为零的情况;Z=sin(R)./R;中sin表示求正弦值,sin(R)./R表示求取R的正弦值后与R再做数组除法,即两数组对应元素一一对应做除法;mesh(Z);表示绘制Z数组的网格线条三维图像;colormap([1,0,0])表示绘图所用的色标,在这里第一个值为1应该是红色([0,10]表示绿色;[0,0,1]表示蓝色)。这个解释已经很详细了,我想不会有人再不计麻烦的打这么多字了,如还有疑问可参考matlab的帮助文档和相关参考书,编程还得靠自己钻研,类似程序分析的提问一般很难得到回答的。祝你学习进步!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询