hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 583|回复: 1

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

[复制链接]

604

主题

616

帖子

1951

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1951
发表于 2023-10-3 08:34:04 | 显示全部楼层 |阅读模式
以下内容摘自matlab 官方文档:https://ww2.mathworks.cn/help/ma ... BD%25E6%2595%25B0_1

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

创建句柄并调用该函数以计算 4 的平方。
  1. f = @computeSquare;a = 4;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):
但还是不明白上面定义函数的时候为什么要用.*   这又不涉及矩阵

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

201

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2023-10-3 08:34:31 | 显示全部楼层
matlab的运算,一般要求以数组的形式进行计算,为了区别矩阵运算,而采用点运算规则。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-11-24 22:43 , Processed in 0.075173 second(s), 22 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

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