WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Ausgabe der m-file Hierarchie / Funktionshierachie

 

Bane
Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 09.06.09
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 17.08.2009, 16:55     Titel: Ausgabe der m-file Hierarchie / Funktionshierachie
  Antworten mit Zitat      
Hi,

Ich habe ein umfangreiches, weit verzweigtes Programm mit vielen Unterprogrammen, in das ich mich reinarbeiten muss. Nun will ich mir erst mal einen Überblick verschaffen, bzw. den Überblick behalten.
Gibt es zu diesem Zweck eine Möglichkeit, sich die Programmstruktur also die m-File Hierarchie ausgeben zu lassen?

Gruß, Bane
Private Nachricht senden Benutzer-Profile anzeigen


steve
Ehrenmitglied

Ehrenmitglied



Beiträge: 2.022
Anmeldedatum: 03.09.07
Wohnort: Wien
Version: R2023b
     Beitrag Verfasst am: 17.08.2009, 17:36     Titel:
  Antworten mit Zitat      
Moin,

mit
Code:
kannst du dir die Abhängigkeiten anzeigen lassen.

Gruß
Alex
_________________

>> I told me to.

____________________________________
Matlab Cheat Sheet
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
Bane
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 34
Anmeldedatum: 09.06.09
Wohnort: Berlin
Version: ---
     Beitrag Verfasst am: 16.09.2009, 11:14     Titel:
  Antworten mit Zitat      
Vielen Dank Alex,

da bei 'depfun' auch Matlab Funktionen in der Hierarchie berücksichtigt werden und der Output auch sonst etwas unübersichtlich ist, habe ich das ganze noch auf meine Bedürfnisse angepasst und stelle die Funktion hier mal ein (siehe unten).
Was bezüglich der Funktions-Hierarchie auch noch weiterhilft ist der Dependency Report in der Current Directory Toolbar. Ziemlich cool ist auch, den Profiler während Programmdurchlaufs mitlaufen zu lassen.

Schönen GRuß, Bane

Code:
% FcnHierarchy.m displays the function dependecies in a tree
% filename.m needs to be executed beforehand
% Warning: if infinite loops occur, reduce max. depth of hierarchy tree
% example call: FcnHierarchy(   'D:\...\mFilename.m'    ,...
%                               'ExMatlab',1            ,...
%                               'maxLevel',4);
% Inputs (obligatory):  path\filename.m (does not work for mFile functions)
% Inputs (optional):    'ShowPath',0    --> don't show path
%                       'ExMatlab',1    --> excludes Matlab functions
%                       'ExMatlab',0    --> includes Matlab functions
%                       'maxLevel',N    --> max. depth of hierarchy tree
 
function [] = FcnHierarchy(FcnName,varargin)
 
indent = '';
 
% defaults of optional arguments
ShowPath = 0;
ExMatlab = 1;
maxLevel = 3;
 
for i = 1:2:length(varargin)
    switch varargin{i}
        case 'indent'
            indent      = varargin{i+1};
        case 'ShowPath'
            ShowPath    = varargin{i+1};
        case 'ExMatlab'
            ExMatlab    = varargin{i+1};
        case 'Level'
            Level       = varargin{i+1} + 1;
        case 'maxLevel'
            maxLevel    = varargin{i+1};
    end
    if max( strcmp( varargin, 'Level' ) ) ~= 1
        Level = 1;
    end
end
 
% get function dependencies
list = depfun(FcnName,'-toponly','-quiet');
 
% exclude Matlab functions
if ExMatlab == 1
    filter = [];
    for i = 1:size(list,1)
        if isempty(findstr(list{i},'MATLAB'))
        filter = [filter i];
        end
    end
    list = list(filter);
end
 
%display
if ShowPath == 0
    disp([indent list{1}(max(findstr(list{1},'\'))+1:end)])
else
    disp([indent list{1}])
end
 
% recursive call
if ( size(list,1)>1 ) && ( Level <= maxLevel )
    for i = 2:size(list,1)
        FcnHierarchy(list{i},...
                    'indent'    ,[indent '     ']   ,...
                    'ShowPath'  ,ShowPath           ,...
                    'ExMatlab'  ,ExMatlab           ,...
                    'Level'     ,Level              ,...
                    'maxLevel'  ,maxLevel);
    end
else
    return
end
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.