MATLAB中的.*和./
发布网友
发布时间:2022-04-24 07:46
我来回答
共4个回答
热心网友
时间:2022-06-17 18:08
z=-20*exp(-0.2*sqrt(x.^2+y.^2)./2)-exp((cos(2*pi.*x)+cos(2*pi.*y))./2)+22.71828
请注意拼写,尤其是括号()。。。
与数组内元素有关的运算要加‘.’
结果如下图:
热心网友
时间:2022-06-17 18:09
这不是点乘的问题,这个你括号不匹配,表达式中左括号和右括号应该数量一样。第一项加一个左括号就行了,改为:
z = -20*exp((-0.2*sqrt(x.^2+y.^2)/2))-exp((cos(2*pi*x)+cos(2*pi*y))/2)+20+2.71828;
或者:
z = -20*exp(-0.2*(sqrt(x.^2+y.^2)/2))-exp((cos(2*pi*x)+cos(2*pi*y))/2)+20+2.71828;
点乘和点除代表矩阵对应元素相乘除。比如
A=[1 2; 3 4];
B=A;
A.*B=[1*1 2*2;3*3 4*4]=[1 4;9 16]
而A*B=[1*1+2*3,1*2+2*4;3*1+4*3,3*2+4*4]=[7 10;15 22]
热心网友
时间:2022-06-17 18:09
多了一个右括号(或者少了一个左括号)
[x,y]=meshgrid(-100:1:100);
z = -20*exp(-0.2*sqrt(x.^2+y.^2)/2)-exp((cos(2*pi*x)+cos(2*pi*y))/2)+20+2.71828;
mesh(z);
热心网友
时间:2022-06-17 18:10
看一些matlab的书,或者在网上搜一下matlab的ppt看看,就知道了。这是基础知识。