- 注册时间
- 2021-9-7
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 1307
- 在线时间
- 小时
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?欢迎注册
×
本帖最后由 jiewenji 于 2022-6-20 13:42 编辑
以下内容摘自matlab 官方文档:https://ww2.mathworks.cn/help/ma ... BD%25E6%2595%25B0_1
使用句柄调用函数的方式与直接调用函数一样。例如,假设您有一个名为 computeSquare 的函数,该函数定义为:
- function y = computeSquare(x)
- y = x.^2;
- end
复制代码
创建句柄并调用该函数以计算 4 的平方。
- f = @computeSquare;
- a = 4;
- b = f(a)
复制代码
我发现创建的函数是 y = x.^2; 但是我将函数内容给改成y = x^2; 计算结果还是16,没有任何变化。所以这里为什么要有一个 “点”呢?
再看下边这个例子。

- fun = @(x) exp(-x.^2).*log(x).^2;
复制代码
计算 x=0 至 x=Inf 的积分。
这个fun函数为什么 .*log 而不直接使用*log 呢? 在这个函数中我去掉点以后积分就会报错。
请问在此@x的作用是生命函数中哪一个字母才是变量,是么?
补充内容 (2022-6-20 21:36):
以 .* 和 * 为例,我看matlab的帮助,只是在处理矩阵 相乘的时候有差别。* 代表矩阵乘法 A*B 用A的行乘B的列。 而 .* 代表对应元素相乘 A.*B 代表A 和 B 每个对应元素相乘。
补充内容 (2022-6-20 21:37):
但还是不明白上面定义函数的时候为什么要用.* 这又不涉及矩阵 |
|