搜索

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看看,就知道了。这是基础知识。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top