MATLAB句柄类和实体类

函数的参数传递

  • MATLAB 中,普通函数的参数传递都是实传递,即函数内对参数的任何修改都不会影响函数外原有的值。
  • 很明显,这样的坏处就是无法通过函数引用传参对传入数据进行处理,如果非要得到处理后的参数,必须将其设置为返回值。
  • 如果大量数据进行这种处理,就会导致运算速度很慢。

Value类和Handle类

  • Value 类是数值类,数值类不能在非构造函数中修改类的属性,如果要修改属性必须返回一个新的类,原来类依旧不变。
  • Value 类复制(nValue = mValue)会复制新的数据给 nValue ,两个类拥有两份独立数据
  • Handle 类在定义类时继承 handle 即可,Handle 类可以在非构造函数中修改属性。
  • Handle 类复制(nHandle = mHandle)只是复制指针,相当于引用,即 nHandle 和 mHandle 指向相同的数据,相当于引用。

Handle类作为默认值

  • 如果一个类的默认值是一个 Handle 类,那么该类的对象都将共享这个属性
classdef Recipe < handle
	properties
		ingredient
	end
end

classdef NoodleStore < handle
	properties
		recipe = Recipe
	end
end
  • NoodleStore 创建对象的 recipe 是相互关联的,所有对象都拥有同一个指向该对象的Handle

你可能感兴趣的:(MATLAB)