函数的参数传递
- 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