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

Variablen programmieren

 

VivaLaSimon
Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.04.2019, 16:04     Titel: Variablen programmieren
  Antworten mit Zitat      
Hallo und vorab, ich habe keinen blassen Schimmer wie man in Matlab programmiert, also bitte nicht zu schnell urteilen.
Mir geht es darum, dass ich in Simulink schon geschafft habe eine Frage zu stellen, sobald mein Modell geöffnet wird.
Das sieht zurzeit so aus: hq = questdlg('Welches Testverfahren soll simuliert werden?','Testauswahl','Testfall 1','Testfall 2','Testfall 1')  

Nun möchte ich natürlich, sobald davon etwas gedrückt wird, meine Variablen sich im Modell ändern. Ich habe meine verschiedenen Variablen in einer .m Datei gespeichert.
Ich möchte als das mein Test1.m geladen wird wenn Testfall 1 gedrückt wird und mein Test2.m wenn Testfall 3 gedrückt wird.

Kann mir da jemand mal sagen wie man so etwas schreibt?

Liebe Grüße

Simon
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.04.2019, 16:07     Titel:
  Antworten mit Zitat      
Hallo,

Code:
switch hq
case 'Testfall 1'
Test1
case 'Testfall 2'
Test2
end


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
VivaLaSimon
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.04.2019, 16:34     Titel:
  Antworten mit Zitat      
Ok das klingt ja eigentlich viel zu einfach.

Wenn du mir noch sagen könntest wo ich das ganze dann noch speichere wäre ich dir dankbar. ich hab ja mein Command Window und kann das auch in den Editor schreiben. Und packe ich da dann den ganzen Code auf einmal rein oder nur den Switch case?

Liebe Grüße

Simon
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.04.2019, 18:28     Titel:
  Antworten mit Zitat      
Hallo,

wo steht denn momentan die Abfrage mit questdlg?
Naheliegend wäre für mich, die switch-case Abfrage darunter zu schreiben.

Generell würde ich für so etwas die Model Callbacks verwenden (unter File --> Model Properties --> Model Properties).

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
VivaLaSimon
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.04.2019, 19:04     Titel:
  Antworten mit Zitat      
Die Abfrage steht im PostloadFcn Callback.
Wenn ich dort aber nun den Code hinzufüge kommt beim Start des Programms dieser Fehler:
Error evaluating 'PostLoadFcn' callback of block_diagram 'ACC17'.
Callback string is ' hq = questdlg('Welches Testverfahren soll simuliert werden?','Testauswahl','Testfall 1','Testfall 2','Testfall 3','Testfall 4','Testfall 1')
switch hq
case 'Testfall 1'
Test1
case 'Testfall 2'
Test2
end '
Caused by:
Too many input arguments.

LG
Simon
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 04.04.2019, 19:50     Titel:
  Antworten mit Zitat      
Hallo,

questdlg unterstützt anscheinend nur bis zu Auswahlmöglichkeiten, siehe Dokumentation. In der Doku findest du auch ein Beispiel, das meinem sehr ähnelt. Ich kann nur dringend empfehlen, bei jeglichen Fragen zu einer Funktion erst mal die Doku zu lesen.

Alternativen zu questdlg könnten listdlg oder menu sein.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
VivaLaSimon
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.04.2019, 15:15     Titel:
  Antworten mit Zitat      
Ichh habe mich nun auf 3 Auswahlmöglichkeiten beschränkt. Sollte ja auch so funktionieren.

Aber ich weiß nicht warum das jetzt doch nicht klappt. Die Dateien sind im selben Ordner. Wenn ich nun aber Simulink aufrufe und meine Antwortbox kommt, lädt beim klicken auf eine Antwort nur eine Variable in mein Workspace und die heißt hq. Meine 40 anderen Variablen welche ich aber für die verschiedenen Tests brauche muss ich immernoch selbst laden.

Code:
hq = questdlg('Welches Testverfahren soll simuliert werden?','Testauswahl','Testfall 1: Automatic stop capability test','Testfall 2: target discrimantion test','Testfall 3: curve capability test','Testfall 1')
switch hq
case 'Testfall 1: Automatic stop capability test'
load(Test1.mat)
case 'Testfall 2: target discrimantion test'
load(Test2.mat)
case 'Testfall 3: curve capability test'
load(Test3.mat)
end
[/code]

Mit einem .m file hat es auch nicht funktioniert.

Liebe Grüße

Simon
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.04.2019, 15:54     Titel:
  Antworten mit Zitat      
Hallo,

hier wird falsche Syntax genutzt.
Code:
load('Test1.mat')


Teste das doch außerhalb von Simulink im Editor. Dort ist die Fehlersuche einfacher.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
VivaLaSimon
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.04.2019, 16:03     Titel:
  Antworten mit Zitat      
Zitat:
For example, to load a file named durer.mat, these statements are equivalent:
load durer.mat % command form
load('durer.mat') % function form


Bin jetz soweit gekommen
Code:
hq = questdlg('Welches Testverfahren soll simuliert werden?','Testauswahl','Testfall 1: Automatic stop capability test','Testfall 2: target discrimantion test','Testfall 3: curve capability test','Testfall 1: Automatic stop capability test')
switch hq
case 'Testfall 1: Automatic stop capability test'
load('Test1.mat')
case 'Testfall 2: target discrimantion test'
load('Test2.mat')
case 'Testfall 3: curve capability test'
load('Test3.mat')
end


Jetzt sagt mir Matlab aber, dass er die Datei nicht findet. Die Datei ist im selben Ordner, wiso findet er dann die Datei nicht?

Zitat:
Error using load
Unable to read file 'Test1.mat'. No such file or Directory.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.04.2019, 16:14     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
For example, to load a file named durer.mat, these statements are equivalent

Wohl wahr, nur hast du die beiden Varianten gemischt, und das geht halt nicht. Entweder mit ( ) und ' ' oder ohne beides.

Zitat:
Die Datei ist im selben Ordner, wiso findet er dann die Datei nicht?

Kann ich dir auch nicht sagen. Bist du sicher, dass du wirklich in dem Verzeichnis bist? Dass es oben als momentanes Verzeichnis angezeigt wird und nicht etwa nur im Current Folder Browser aufgeklappt ist?

Im Zweifelsfall den kompletten Pfad angeben.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
VivaLaSimon
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.04.2019, 16:31     Titel:
  Antworten mit Zitat      
Ersteres habe ich nun verstanden. Programmieren ist wohl doch manchmal Kleinigkeiten beachten.

Wenn du mit dem Verzeichnis das oben in der Leiste meinst dann bin ich mir sicher. Habe auch schon evrsucht die Dateien mal in den Matlab Ordner selbst, wo er am Anfang meine Dateien immer speicherte zu hinetrlegen und abzufraen. Will er aber nicht

Liebe Grüße

Simon

Unbenannt.jpg
 Beschreibung:

Download
 Dateiname:  Unbenannt.jpg
 Dateigröße:  330.68 KB
 Heruntergeladen:  239 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.04.2019, 16:36     Titel:
  Antworten mit Zitat      
Hallo,

blende doch im MATLAB-Screenshot auch den Current Folder Browser ein.
Gibt es auf dem Rechner evtl. mehrere User, und du bist im falschen Documents-Verzeichnis?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
VivaLaSimon
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 30
Anmeldedatum: 06.03.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.04.2019, 17:14     Titel:
  Antworten mit Zitat      
Wie kann ich den denn mit anzeigen?

Es gibt mehrere Benutzer ja. Ich probiere das später mal daheim auf dem eigenen Rechner. Hoffe es klappt dann da

Grüße

Simon
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.432
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.04.2019, 20:23     Titel:
  Antworten mit Zitat      
Hallo,

Current Folder Browser wird standardmäßig angezeigt.
Unter HOME --> Layout kannst du den Current Folder Browser aktivieren oder auf ein anderes Layout schalten.

Zitat:
Es gibt mehrere Benutzer ja.

Und? Bist du auch wirklich im richtigen Documents-Verzeichnis?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.