2016-09-01 9 views
1

Matlabで独自のクラスファイルを作成しました。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 

それはout=Func(input)の代わりout=Impact.Func(input)のような機能Funcを呼び出すことが可能です。 importコマンドについて聞いていますが、クラスがパッケージ内にないときにどのように使用するのか分かりません。

ありがとうございます。よろしく。 importのドキュメントとImporting Classesさらに読みパー

答えて

4

import Impact.*

は、お使いのベースワークスペースにImpactのpublic staticメソッドのすべてをインポートします。プライベートな静的メソッドはインポートされますが、呼び出すことはできません。

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

、次のコマンド:

import testcode.* 
test 

戻り値:

>> test 
hi 

あなたの名前空間に関数をインポートし、言われていること次のクラス定義を持つ例えば

、このように任意に好きなのはではない良いアイデアは簡単に名前空間の衝突と混乱につながる可能性があります。マニュアルに従って

:この構文を使用して

避け、パッケージをインポートすると MATLABワークスペース内の名前と競合する可能性がありますローカルスコープの中に名前の指定されていない セットをもたらすよう。この構文の1つの可能な使用方法は、部分パッケージ名 をインポートすることです。次に、関数を呼び出すときには、単純な関数名と競合しない、より短い パッケージ名を使用します。 の例では、matlab.io.hdf4.sdパッケージにはclose関数があります。これは 関数とMATLAB close関数が衝突します。


また、上記に若干の改善であるが、IMOの注意点はまだ適用され特定静的メソッドを、インポートすることができます。例えば

import testcode.test 
test 

は、前の例と同じで返します。

+0

私は予想よりも簡単です。私はパッケージとしての輸入の可能性を実感しませんでした。 この文脈では、クラスのプロパティがあまり意味をなさないと思います。私は正しい? ありがとうございました! –

+0

いいえ、意味がありません。 – excaza

関連する問題