找回密码
 欢迎注册
查看: 2908|回复: 1

[求助] matlab创建函数为什么要用 “点”符号?

[复制链接]
发表于 2022-6-20 12:00:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
本帖最后由 jiewenji 于 2022-6-20 13:42 编辑

以下内容摘自matlab 官方文档:https://ww2.mathworks.cn/help/ma ... BD%25E6%2595%25B0_1

使用句柄调用函数的方式与直接调用函数一样。例如,假设您有一个名为 computeSquare 的函数,该函数定义为:
  1. function y = computeSquare(x)
  2. y = x.^2;
  3. end
复制代码


创建句柄并调用该函数以计算 4 的平方。

  1. f = @computeSquare;
  2. a = 4;
  3. b = f(a)
复制代码


我发现创建的函数是 y = x.^2;    但是我将函数内容给改成y = x^2;   计算结果还是16,没有任何变化。所以这里为什么要有一个 “点”呢?



再看下边这个例子。

  1. fun = @(x) exp(-x.^2).*log(x).^2;
复制代码


计算 x=0 至 x=Inf 的积分。
  1. q = integral(fun,0,Inf)
复制代码


这个fun函数为什么 .*log   而不直接使用*log 呢?  在这个函数中我去掉点以后积分就会报错。  
请问在此@x的作用是生命函数中哪一个字母才是变量,是么?

补充内容 (2022-6-20 21:36):
以 .*  和 *  为例,我看matlab的帮助,只是在处理矩阵 相乘的时候有差别。* 代表矩阵乘法 A*B 用A的行乘B的列。 而 .* 代表对应元素相乘  A.*B  代表A 和 B 每个对应元素相乘。

补充内容 (2022-6-20 21:37):
但还是不明白上面定义函数的时候为什么要用.*   这又不涉及矩阵
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2022-6-29 20:23:48 | 显示全部楼层
matlab的运算,一般要求以数组的形式进行计算,为了区别矩阵运算,而采用点运算规则。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-21 20:51 , Processed in 0.032481 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表