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

Funktionsargumente verpaaren, varargin, beliebige Reihenfolg

 

trust114
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2016, 14:54     Titel: Funktionsargumente verpaaren, varargin, beliebige Reihenfolg
  Antworten mit Zitat      
Hallo Leute,

hänge leider immer noch an meinem Problem mit der Verpaarung der Funktionsargumente.

Ich habe eine Funktion die verschiedene mathematische Graphiken (Sinus, Kosinus-Verlauf u. ä.) darstellen kann. Meine ersten beiden Funktionsparameter stellen die Dateitypen dar und sind festgelegt. Die anderen sollen optional sein. Nun habe ich gelesen das man mit dem Befehl struct Paare bilden kann. Und es hat auch soweit geklappt. Nur leider kann schaffe ich es nicht meine Paare mit beliebiger Reihenfolge einzubringen.

Um es kurz zu erklären: ich brauche eine Funktion die so ähnlich wie der Befehl Plot arbeitet.

Code:
x=0:pi/12:3*pi;
plot(sin(x), 'color','black','linewidth',2,'marker','+', ...usw.) % Hier sieht man ja sehr schön wie das verpaart wurde, und es absolut keinen  
                                                                  % Unterschied macht, ob das Paar = 'color','black' vor dem Paar= 'linewith',2 steht                                                                  

 


Genau wie im obigen Beispiel soll auch meine Funktion arbeiten. Nur eben mit dem Unterschied, dass ich keine Funktion (sin, cos, x^2) sondern bestimmte Bilder plotte und die dann im Nachhinein nach Belieben farblich, oder anders bearbeiten kann.

Die Paare die ich in meinem Fall bilden will, sehen folgendermaßen aus:
1. Paar = 'Pic', 'Zahl zwischen 1-10'
2. Paar = 'color', 'Alle möglichen Farben'
3. Paar = 'Linienstärke','mögliche Zahlen 1-100'
usw.


Code:

function [varargout]=test_2(data_1, data_2, varargin)
.
.% Hier steht der Inhalt um die Figure aufzurufen
.
.
if nargin > 2
    Bildnummern = 1:10;
    Farben = {'black','red','yellow','green',..usw};
    Linienstaerken = 1-100;

    options = struct('Pic',Bildnummern,'color', Farben,'Linewidth',Linienstaerken);
    optionnames = fieldnames(options);
   
    % Eingangsparameter prüfen
    if mod(numel(varargin), 2) > 0 % Falls unvollständige Paare eingegeben werden
      disp('Bitte Parameter-Werte-Paare angeben.');
      return
    end
   
    % Übergebene Parameter parsen
    for i = 1:2:numel(varargin)
      switch varargin{i}
          case 'Pic';
          def.Pic = varargin{i + 1};
         
         
          if varargin{i+1} == 1    

                    fig3=figure(3);
                    plot(MP{varargin{i+1}}(1:length(MP{varargin{i+1}})));
                    Name_Bild_3=varargin{i+1};
                    Title_Bild_3=num2str(Name_Bild_3);
                    title(['Zeit-Druck-Verlauf,  Messpunkt: ', Title_Bild_3])
                    xlabel('Zeiteinheiten')
                    ylabel('Druck')
                    grid on
                    axis tight
                end
          end
end
 


In diesem Auszug sieht man nun den ersten Plot. Jetzt würde ich gerne das ganze gerne optional farblich bearbeiten können, aber eben mit der Eigenschaft das die Paare color, linewidth usw. an beliebigen Stellen stehen können.

Vezweifle langsam echt an der Aufgabe. Hoffe ihr könnt mir helfen.
Danke.
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 19.03.2016, 15:10     Titel:
  Antworten mit Zitat      
Hallo,

du hattest doch schon zu dem Thema einen eigenen Thread: http://www.gomatlab.de/viewtopic,p,162250.html#162250

Dort hat man dir ebenfalls sinnvolle Lösungsmöglichkeiten aufgezeigt. Warum nun der neue Thread bzw. warum dieses Thema schon wieder? Hast du versucht die Lösungsvorschläge umzusetzen?

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
trust114
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2016, 15:37     Titel:
  Antworten mit Zitat      
Hi DSP,

Habs versucht, aber leider nicht hinbekommen. Sorry.

Die Eigenschaft der beliebigen Reihenfolge hatte ich damals auch nicht angesprochen.

Schöne Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 19.03.2016, 15:43     Titel:
  Antworten mit Zitat      
Dann stelle in dem Thread mit den Lösungsvorschlägen doch einfach mal Fragen warum es nicht funktioniert bzw. wie du es lauffähig bekommst. Aber eigentlich sollte der Code ohne Probleme gehen. Ich nutze die Funktionen nämlich auch hin und wieder. Bei meinem Vorschlag ist die Reihenfolge übrigens beliebig Wink.
Private Nachricht senden Benutzer-Profile anzeigen
 
trust114
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.03.2016, 16:03     Titel:
  Antworten mit Zitat      
ja hast recht.
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 - 2025 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.