在MATLAB中使用.NET类库

用Visual Studio创建.NET类库后,在MATLAB中可用NET.addAssembly函数载入它。载入以后,就可以使用类库定义的类。注意,在MATLAB中无法卸载类库。如果修改或重建自己的类库,必须重启MATLAB来实现改变。[大谦MATLAB,dqmatlab点com]

打开MATLAB,在命令窗口输入下面的语句加载前一小节创建的类库mypos.dll。先将该文件复制到D盘。

code.matlab
>> test=NET.addAssembly('d:\mypos.dll')
test=
  NET.Assembly 句柄
  包: NET
类 NET.Assembly 的属性:
    AssemblyHandle
    Classes
    Structures
    Enums
    GenericTypes
    Interfaces
    Delegates

引用类库对象的Classes属性:

code.matlab
>> test.Classes
ans =
  1×1 cell 数组
    {'mypos.Position'}

可见有1个Position类,前面用名字空间mypos进行点引用。

创建Position类的实例obj:

code.matlab
>> obj=mypos.Position
obj=
  Position - 属性:
       ID: 0
        x: 0
        y: 0
    Disto: 0

默认时点的坐标为原点坐标。设置obj的横坐标为10:

code.matlab
>> obj.x=10
obj=
  Position - 属性:
       ID: 0
        x: 10
        y: 0
    Disto: 10

自动计算该点到原点的距离。设置obj的纵坐标为10:

code.matlab
>> obj.y=10
obj=
  Position - 属性:
       ID: 0
        x: 10
        y: 10
    Disto: 14.1421

用Move方法平移点,横坐标方向和纵坐标方向各平移100个单位:

code.matlab
>> obj.Move(100,100)
>> obj
obj=
  Position - 属性:
       ID: 0
        x: 110
        y: 110
    Disto: 155.5635

返回点在新位置的坐标和到原点的新距离。