2016-09-01 2 views
1

J'ai créé mon propre fichier de classe dans Matlab.Importer votre propre classe dans 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 

Il est possible d'appeler la fonction Func comme out=Func(input) au lieu de out=Impact.Func(input). J'entends parler de la commande import, mais je ne sais pas comment l'utiliser quand la classe n'est pas dans un paquet.

Merci beaucoup d'avance. Cordialement.

Répondre

4

par la documentation import et Importing Classes en savoir plus:

import Impact.*

importera toutes les méthodes statiques publiques de Impact dans votre espace de travail de base. Les méthodes statiques privées seront importées mais ne peuvent pas être appelées.

Par exemple, la définition de classe suivante:

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

Et les commandes suivantes:

import testcode.* 
test 

Retours:

>> test 
hi 

Cela étant dit, les fonctions importer dans votre espace de noms arbitrairement comme ceci est beaucoup pas une bonne idée et peut facilement conduire à des conflits d'espaces de noms et de la confusion.

par la documentation:

Évitez d'utiliser cette syntaxe, comme l'importation des paquets apporte un ensemble de noms non précisé dans le champ d'application locale, ce qui pourrait entrer en conflit avec des noms dans l'espace de travail Matlab. Une utilisation possible de cette syntaxe consiste à importer un nom de package partiel . Ensuite, lorsque vous appelez une fonction, vous utilisez un nom de package plus court qui n'est pas en conflit avec les noms de fonctions simples. Pour par exemple, le package matlab.io.hdf4.sd a une fonction close, qui peut entrer en conflit avec la fonction MATLAB close.


Vous pouvez également importer spécifiques méthodes statiques, ce qui est une légère amélioration par rapport à ce qui précède, mais l'OMI la mise en garde est toujours applicable.

Par exemple:

import testcode.test 
test 

Identique à l'exemple précédent.

+0

Plus simple que prévu. Je n'ai pas réalisé la possibilité de l'importer comme un paquet. Je suppose que dans ce contexte, les propriétés d'une classe n'ont pas beaucoup de sens. Ai-je raison? Merci beaucoup! –

+0

Non, cela n'a pas de sens. – excaza