Matlab 中@的用法主要有:函数句柄、函数表达式、调用父类以及类文件夹。

前两种有很多介绍,后两种涉及类,介绍的人很少。前2个例子,参考了其它博客,总感觉@用法都写的不全,所以在此基础上,补充了3、4 。感兴趣的,可以去看看徐潇编著的《matlab面向对象编程-从入门到设计模式》(注:不是广告、不是推销、纯粹的是觉得这本书很不错吗,想推荐给各位)。

1. 充当函数句柄的作用

用法:变量1 = @+(内置)函数名;

调用:变量2 = 变量1(参数1,参数2,……);

注:输入参数是上一行设置是的函数输入参数!,(内置)函数是定义好的(系统定义、自己定义都行)

>> f = @cos
f =包含以下值的 function_handle:@cos
>> f(pi/6)
ans =0.8660
>> f(pi/3)
ans =0.5000

2. 构造函数表达式

用法:变量名=@(输入参数列表)运算表达式

例如:构造一个一元二次方程函数x2+4x+4=y,求解x=3、x=4时,y的值?

>> y = @(x)(x.^2+4*x+4)
y =包含以下值的 function_handle:@(x)(x.^2+4*x+4)
>> y([3,4])
ans =25    36

3. 调用父类(基类)

要调用超类方法,方法名称'XXX'必须与子类方法'***'的名称匹配

比如:新建一个Ponit3D类,该类继承的父类是Point2D。(代码来源于徐潇编著的《matlab面向对象编程-从入门到设计模式》)

classdef Point2D < handle

% 定义父类

properties

x;

y;

end

methods

function Obj = Point2D(x0,y0)

Obj.x = x0;

Obj.y = y0;

end

function print(Obj)

disp(['x=',num2str(Obj.x)]);

disp(['y=',num2str(Obj.y)]);

end

function Sum = add(Obj)

Sum = Obj.x+Obj.y;

end

end

end

classdef Point3D < Point2D

% 定义子类

properties

z;

end

methods

function Obj = Point3D(x0,y0,z0)

Obj = Obj@Point2D(x0,y0);

Obj.z = z0;

end

function print(Obj)

print@Point2D(Obj)

disp(['z=',num2str(Obj.z)]);

end

function Sum = add(Obj)

temp = add@Point2D(Obj);

Sum = temp+Obj.z;

end

end

end

本代码共有三个@使用实例(红色标注)。

用法:父子类同名方法(或对象)@父类名称

注:“要调用超类方法,方法名称'Obj'必须与子类方法print'的名称匹配”

如果将Poni3D类中方法名称'Print'改成'Print1',则会显示'print1' 不是基类 'Point2D' 的可访问方法。因此,需注意的是,子类调用父类的方法时,名称必须与父类匹配。

4. 存放类文件夹

用法:文件夹命名:@+类名

eg:@Point2D

不足之处,敬请斧正!

路漫漫其修远兮,吾将上下而求索!

Matlab 中@ 的用法相关推荐

  1. matlab函数im2bw_im2bw(matlab中im2bw用法)

    MATLAB使用im2bw函数后,将一个32*16*3 unit的数组变成了31*10 的数组,. graythresh函数用法:使用最大类间方差法找到图片的一个合适的阈值(threshold).在使 ...

  2. matlab中waitbar用法,matlab中waitbar

    34 13-1.在axes显示图像后,在图像上单击鼠标时,回调函数的定义规则和使用方法35 14.如何在循环中加入waitbar,并在waitbar上添加'取消'按钮36 15.在matlab中对.. ...

  3. union matlab,[转载]intersect,unique,union在matlab中的用法(I lo

    Matlab中集合的交运算函数intersect intersect Set intersection of two vectors Syntax c = intersect(A,B) c = int ...

  4. matlab中eig用法,MATLAB中eig的用法

    在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有 5种: (1) E=eig(A):求矩阵A的全部特征值,构成向量E. (2) [V,D]=eig(A):求矩阵A的 ...

  5. matlab中ode45用法,ode45(ode45用法举例)

    ode45是用4阶方法提供候选解,5阶方法控制误差,是一种自适应步长的方法.而我们平时用的4阶和5阶龙格库塔法的公式中步长是给定的.具体算法和原理你可以看. ode45的初始条件是否必须是在x=0处 ...

  6. matlab中cell用法

    cell 元胞数组 说明 元胞数组是一种包含名为元胞的索引数据容器的数据类型,其中的每个元胞都可以包含任意类型的数据.元胞数组通常包含文本列表.文本和数字的组合或者不同大小的数值数组.通过将索引括在圆 ...

  7. Matlab中imagesc用法

    一.imagesc常用函数 1.1 imagesc(b) imagesc(b):将数组b中的数据显示为一个图像,该图像使用颜色图中的全部颜色.b中的每个元素指定图像的一个像素的颜色.生成图像是m*n的 ...

  8. matlab中selector用法,MATLAB SIMULINK Bus Selector 总线选择

    MATLAB SIMULINK Bus Selector 从传入的总线选择信号 库 信号路由 描述 总线选择模块,在其输入输出的总线元素中选定子集.块可以作为单独的信号,或作为一种新的总线输出的指定的 ...

  9. matlab中stract用法_求matlab中strcat用法

    MATLAB概述 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言 ...

最新文章

  1. pyton BeautifulSoup中文API
  2. tensorflow随笔-tf.no_op
  3. python三大神器===》装饰器
  4. C# 7.0 新特性:本地方法
  5. python mysql 性能监控_MySQL性能监控工具 orzdba python版本
  6. 内核堆栈 用户堆栈_堆栈痕迹从何而来?
  7. [译]Kinect for Windows SDK开发入门(二):基础知识 上
  8. linux与磁盘相关的内容
  9. 天池 在线编程 矩阵还原(前缀和)
  10. Java架构师面试题系列之Mybatis面试专题(36题,含详细答案解析)
  11. python对csv文件中的数据进行分类_python 数据处理 对csv文件进行数据处理
  12. 读python学习手册
  13. CAD工程制图软件中洁具图库的使用
  14. 现在的python版本_为什么有这么多 Python版本
  15. Centos 6 yum安装出错
  16. 【R言R语】算法工程师入职一年半的总结与感悟
  17. PS初体验:熟悉快捷键
  18. WT品牌语音芯片、功放芯片—让人机交互更简单,让电子世界更美好
  19. python与分形0021 - 【教程】奥林匹克五环
  20. 查看锐捷poe交换机供电状态_锐捷POE交换机配置方法

热门文章

  1. eclipse oxygen e4.7.3a 下载STS插件
  2. OSChina 周六乱弹 ——所以会魔法的人都是孤独的
  3. wildfly常用配置说明
  4. 贝壳团队出品的 Flutter 组件库 Bruno 现已开源
  5. ESP8266(ESP-12F)+DS18B20+贝壳物联
  6. 关于Neuro-Fuzzy Designer的使用
  7. IT行业分析之嵌入式应用
  8. PHP搭建织梦网站,织梦官方php服务器环境DedeAMPZ安装教程
  9. 浅析电感噪音以及解决办法
  10. 基于行为识别和视频分类的算法