在Matlab中导入自己的类

时间:2016-09-01 13:11:34

标签: matlab class definition

我在Matlab中创建了自己的类文件。

classdef Impact
%IMPACT Summary of this class goes here
%   Detailed explanation goes here

    properties
        V       
    end

    methods(Static)        
        function Imp=Func(A)
            B=V*A^2;
        end
    end

end

可以像Func而不是out=Func(input)一样调用out=Impact.Func(input)函数。我听说过import命令,但是当课程不在包中时,我不知道如何使用它。

非常感谢提前。问候。

1 个答案:

答案 0 :(得分:4)

根据importImporting Classes进一步阅读的文档:

import Impact.*

Impact的所有公共静态方法导入基础工作区。将导入专用静态方法,但无法调用。

例如,使用以下类定义:

classdef testcode
    methods(Static)
        function test
            disp('hi')
        end
    end
end

以下命令:

 import testcode.*
 test

返回:

>> test
hi

话虽如此,将函数导入您的命名空间是非常像一个好主意,很容易导致命名空间冲突和混淆。

根据文件:

  

避免使用此语法,因为导入包带来了未指定的内容   一组名称到本地范围,可能与名称冲突   MATLAB工作区。此语法的一种可能用途是导入a   部分包名称。然后当你调用一个函数时,你会使用更短的函数   包名称与简单函数名称不冲突。对于   例如,matlab.io.hdf4.sd包具有close功能,可以   与MATLAB close函数冲突。

您还可以导入特定的静态方法,这对上述方法略有改进,但IMO仍然适用。

例如:

import testcode.test
test

返回与上一个示例相同的内容。