|
|
Klausuraufgabe Maschinenbauer IT - Matlab |
|
Che |

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 10.03.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013b
|
 |
|
|
 |
|
Verfasst am: 10.03.2014, 19:36
Titel: Klausuraufgabe Maschinenbauer IT - Matlab
|
 |
Hey Leute,
ich als Maschinenbauer muss auch in einem Fach IT schreiben. Man muss sagen, dass es im letzten Semester ein neues Konzept gab von den Übungen her. Magicdraw, ein bissjen Matlab. Bin nicht der stärkste in IT und wir haben echt nur die Grundlagen in der Vorlesung behandelt und in der Klausur kamen dann echt hammer Dinger dran, die wir nie so in der Übung geübt habt.
Hier mal die Aufgaben:
Die Chancen stehen gut, dass solch eine Aufgabe nochmal dran kommen kann, wenn nicht sogar genau eine nochmal.
Hier etwas für die Statistiker
Vielleicht hat ja jemand Zeit, und kann mir sagen, wie ich das am besten programmieren kann.
Vllt bekomme ich das ja geschnallt, wenn ich schonmal eine Musterprogrammierung sehe.
Das wäre auf jeden Fall sauuuu stark !
Danke schonmal im voraus
LG
ChE
|
|
|
|
|
Andreas Goser |

Forum-Meister
|
 |
Beiträge: 3.654
|
 |
|
 |
Anmeldedatum: 04.12.08
|
 |
|
 |
Wohnort: Ismaning
|
 |
|
 |
Version: 1.0
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 09:33
Titel:
|
 |
Ich bin mir sehr sicher, dass Sie die Fähigkeit Lösungen für solche Aufgaben selber zu entwickeln in 90% der Jobs als Maschinenbauigenieur benötigen und es klug ist früh damit anzufangen diese Fähigkeiten zu entwickeln.
Die Community hilft gerne in "Hier ist mein Versuch, aber ich kriege noch folgende Fehlermeldung / folgendes unerwartetes Ergebnis" Situationen.
Andreas
|
|
|
Che |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 10.03.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013b
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 12:09
Titel:
|
 |
dachte mir, dass mich so etwas erwartet
fangen wir doch mal klein mit der Aufgabe_1 an:
Was soll das ans = 10 bedeuten? das ist wohl der Flächenwert, weil er zuerst im Skript steht als display?
Wie bekomme ich das weg?
Und wie kann ich meine Angaben jetzt noch ein wenig aufwerten, indem ich Einheiten dazu bekomme?
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 12:19
Titel:
|
 |
|
 |
|
Hallo,
deine Funktion liefert grundsätzlich schon mal die richtigen Werte zurück.
Zitat: |
wie schaffe ich es, dass er mir Fläche= 10 ausspuckt, also genau dort das Wörtchen "Fläche" steht. |
davon, dass das im Command Window ausgegeben werden soll, steht ja nichts in der Aufgabe. Das soll (so wie du es richtig gemacht hast) als Rückgabewerte der Funktion ausgegeben werden.
Zitat: |
Und was soll das ans = 10 bedeuten? das ist wohl der Flächenwert, weil er zuerst im Skript steht als display? |
Ja, so ähnlich. Du rufst deine Funktion (die 2 Rückgabewerte liefert) auf, ohne die Werte dann zu speichen. Dann gibt das nur den ersten Rückgabewert zurück, in diesem Fall die 10. Dieser Wert wird in ans gespeichert.
besser:
Du bist dann aber noch nicht fertig. Bei solchen Aufgaben gehört es eigentlich auch immer dazu, sicherzustellen, dass der Benutzer auch für jede Eingabekombination etwas sinnvolles zurückbekommt, das bedeutet eben auch, dass er darauf hingewiesen werden sollte, wenn er Blödsinn eingibt.
Hier wären denkbare Einschränkungen für l und b (also die Eingabeparameter), dass beides Skalare > 0 sind. Was würde beispielsweise deine Funktion liefern, wenn ich die so aufrufe, was ja offensichtlich Blödsinn ist:
Die i-Tüpfelchen ist dann noch eine Zeile Kommentar nach dem Funktionsbeginn, in der angegeben wird, wie die Funktion zu nutzen ist. Also bei Eingabe von "help flaecheumfang" sollte dann was im Commandwindow erscheinen.
Viele Grüße,
Nras.
|
|
|
Che |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 10.03.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013b
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 12:36
Titel:
|
 |
|
 |
|
verdammt, jetzt hast du mir schon geantwortet, als ich gerade am editieren war .
In dem 1. Skript-post von mir siehst du jetzt mein Ergebnis.
Zitat: |
davon, dass das im Command Window ausgegeben werden soll, steht ja nichts in der Aufgabe. Das soll (so wie du es richtig gemacht hast) als Rückgabewerte der Funktion ausgegeben werden.
|
Wie hab ich es denn richtig gemacht =D? Wenn ja, dann war das Zufall.
Das ist jetzt blöd, dass ich es editiert habe, in deinem Zitat steht jetzt meine Alte version drin, dort ist es richtig als Rückgabewert der Funktion ausgegeben.
In meiner neuen Version (aber alter Beitrag) ist es nicht mehr richtig, da ich es jetzt nicht mehr als Rückgabewert der Funktion habe?
Das mit dem Rückgabewert kann ich mir noch nicht vorstellen.
Muss ich nur mit dem Skript-Fenster arbeiten?
Brauche ich das Command-window garnicht?
Aber wie stelle ich dann fest, ob er mir was richtiges ausgibt? (abgesehen davon, dass man Käse wie (-18,'Apfelbaum') eingibt.
hier nochmal meine 2 Versionen:
Version1:
Version2:
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 12:48
Titel:
|
 |
|
 |
|
Hallo
Zitat: |
da ich es jetzt nicht mehr als Rückgabewert der Funktion habe? |
Doch doch... In deiner Funktion sind A und U die Rückgabewerte. Das definierst du mit dieser Zeile:
Innerhalb der Funktion werden A und U jeweils mit einem Wert belegt. Der korrekte Funktionsaufruf, mit dem du dann an die Werte kommst, steht schon oben in meinem ersten Beitrag. Das ist meiner Meinung nach alles, was die Aufgabenstellung verlangt.
Im Commandindwo könnte man dann soetwas machen:
Aber wie bereits erwähnt, steht das nicht in der Aufgabe.
Zitat: |
Und wie kann ich meine Angaben jetzt noch ein wenig aufwerten, indem ich Einheiten dazu bekomme? |
Gar nicht? Andernfalls müsstest du als Eingabeargumente noch die Einheit der Länge und der Breite wissen.
Zitat: |
Aber wie stelle ich dann fest, ob er mir was richtiges ausgibt? (abgesehen davon, dass man Käse wie (-18,'Apfelbaum') eingibt. |
Ich dachte, ihr schreibt eine Klausur mit Stift und Zettel. Wenn ihr aber während der Klausur das ganze in Matlab schreiben könnte, ist das Commandwindow natürlich gut dazu geeignet, mal zu testen, was rauskommt.
Viele Grüße,
Nras.
|
|
|
Che |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 10.03.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013b
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 13:11
Titel:
|
 |
|
 |
|
ok, vielen Dank.
Glaube jetzt hab ich es geschnallt mit dem Rückgabewert.
Mit der ersten Zeile definier ich Eingabeparameter und Ausgabewerte.
dann kommt mein funktion über die Ausgabewerte in Abhängigkeit der Eingabewerte und jetzt bin ich eigentlich schon fertig.
Das würde schon langen würdest du vermuten.
Wenn jetzt noch die Angabe stehen würde:
Schreiben sie ihr skript so, dass wenn sie im Commandwindow das Skript für 2 Werte eingeben schreibt, dass 'Fläche beträgt: '
Dann würde ich meine Versione 1 und 2 benutzen.
Und wenn ich das Command-window nicht benutzen sollte, aber direkt ein Beispiel mit 2 Werten(3,7) auswerten sollte dann benutz ich
und schreibe es vor das "end" im skript.
Für:
zeigt er mir:
was genau macht das num2str?
Google:
Zitat: |
Die Anweisungen input,disp,und num2string ermöglichen es,Daten interaktiv einzugegeben |
sind diese 3 befehle also gleichwertig?
LG, und danke für die Geduld mit mir
edit:
Und ja, wir schreiben die Klausur mit Stift und Papier.
zu Aufgabe 2 (Teilbarkeit durch 3)
mein Versuch:
Hier hab ich jetzt spontan wieder mit dem commandwindow gearbeitet, weil ich nicht wüsste, wie ich sonst meine if funktion einbringen kann.
Das Skript scheint so zu funktionieren!
jemand andere Vorschläge dazu, wie ich das ganze ohne die Befehle für das CommandWindow schreibe?
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 14:34
Titel:
|
 |
|
 |
|
Zitat: |
Und wenn ich das Command-window nicht benutzen sollte, aber direkt ein Beispiel mit 2 Werten(3,7) auswerten sollte dann benutz ich
Code:
function [A,U] = flaecheumfang(3,7) |
also diese Zeile macht keinen Sinn. Du redest von auswerten, das ist also ein Funktionsaufruf, dann musst du das "function" streichen.
Zitat: |
Das würde schon langen würdest du vermuten. |
Eigentlich nicht. Da gehört mindestens noch eine Zeile zwischen, die besagt, was die Funktion machen soll und dann sollten noch falsche Eingaben abgefangen werden.
Dein Versuch zur Lösung der zweiten Aufgabe ist auch nicht gerade so richtig gut. true und false sind keine guten Variablennamen, da das sogenante "built-ins" sind. Zudem steht nun bei dir in beiden Variable das gleiche, nämlich das Ergebnis aus mod(x,3).
Die Funktion sollte eher so gebaut sein: Du schaust dir an, was aus beo mod(x,3) rauskommt. Wenn das Ergebnis eine 0 ist, dann war x durch 3 teilbar und der Rückgabewert der Funktion soll eine 1 sein. Wenn das Ergebnis keine 0 ist, dann gibt es einen Divisionsrest und x war nicht durch drei teilbar und der rückgabewert der Funktion soll eine 0 sein.
Ausgabe ist in jedem Fall nur ein einziger Wert und nicht zwei.
Viele Grüße,
Nras.
|
|
|
Che |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 10.03.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013b
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 15:01
Titel:
|
 |
|
 |
|
Nras hat Folgendes geschrieben: |
Zitat: |
Und wenn ich das Command-window nicht benutzen sollte, aber direkt ein Beispiel mit 2 Werten(3,7) auswerten sollte dann benutz ich
Code:
function [A,U] = flaecheumfang(3,7) |
also diese Zeile macht keinen Sinn. Du redest von auswerten, das ist also ein Funktionsaufruf, dann musst du das "function" streichen.
wuaaah, da hast du natürlich recht.
sehe ich ein  |
Zitat: |
Zitat: |
Das würde schon langen würdest du vermuten. |
Eigentlich nicht. Da gehört mindestens noch eine Zeile zwischen, die besagt, was die Funktion machen soll und dann sollten noch falsche Eingaben abgefangen werden. |
Im Sinne eines Kommentares?, also % meinst du?
weil sonst sag ich doch was die Funktion machen soll über A =... und U = ....
Und zum zweiten Teil mit den falschen Eingaben habe ich das gefunden, was mir eventuell weiterhelfen könnte:
Zitat: |
Dein Versuch zur Lösung der zweiten Aufgabe ist auch nicht gerade so richtig gut. true und false sind keine guten Variablennamen, da das sogenante "built-ins" sind. Zudem steht nun bei dir in beiden Variable das gleiche, nämlich das Ergebnis aus mod(x,3).
Die Funktion sollte eher so gebaut sein: Du schaust dir an, was aus beo mod(x,3) rauskommt. Wenn das Ergebnis eine 0 ist, dann war x durch 3 teilbar und der Rückgabewert der Funktion soll eine 1 sein. Wenn das Ergebnis keine 0 ist, dann gibt es einen Divisionsrest und x war nicht durch drei teilbar und der rückgabewert der Funktion soll eine 0 sein.
Ausgabe ist in jedem Fall nur ein einziger Wert und nicht zwei.
. |
neuer Versuch:
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 15:09
Titel:
|
 |
Hallo,
wenn du möchtest, kannst du das mit if und return machen, ja.
Wenn man nun "help flaecheumfang" ins command window eingibt, so weiß der Benutzer, was die funktion macht, ohne das im Code nachlesen/verstehen zu müssen.
Fast richtig. Auch hier soll nicht 0 oder 1 auf den Bildschirm ausgegeben werden, sondern das soll der Rückgabewert der funktion sein. Ich dachte an soetwas:
Vielleicht darfst du auch hier mod() gar nicht benutzen, da es damit ziemlich witzlos wird.
Viele Grüße,
Nras
|
|
|
Che |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 10.03.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013b
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 15:49
Titel:
|
 |
|
 |
|
Nras hat Folgendes geschrieben: |
Hallo,
wenn du möchtest, kannst du das mit if und return machen, ja.
Wenn man nun "help flaecheumfang" ins command window eingibt, so weiß der Benutzer, was die funktion macht, ohne das im Code nachlesen/verstehen zu müssen.
|
ok jetzt verstehe ich das was du gemeint hast mit der Beschreibung der Funktion. Dachte jeder sieht den Quellcode eh und erkennt das direkt
Zitat: |
Fast richtig. Auch hier soll nicht 0 oder 1 auf den Bildschirm ausgegeben werden, sondern das soll der Rückgabewert der funktion sein. Ich dachte an soetwas:
|
und hier wird es auch solansam hell in meiner birne, dass ich mir den Befehl 'disp' sparen kann und einfach denselben Parameter wie bei function[X] nehme und den dann definiere.
Zitat: |
Vielleicht darfst du auch hier mod() gar nicht benutzen, da es damit ziemlich witzlos wird.
|
naja, ist ja jetzt nicht die größte Programmierkunst die ein Maschinenbauer können muss, zumindest jetzt noch nicht.
Gab ja auch nur 4 Punkte. Denke schon, dass wir hier mod benutzen dürfen.
Ich probiere mich gerade an der Aufgabe 3 vom Programmierteil mit Simulink, aber scheitere glaube ich kläglich.
Ich habe probiert, das ganze nachzubauen, um den Code gleich programmieren zu können, und später zu schauen und zu überprüfen, ob der Scope derselbe ist, der herauskommt.
Bekomme es nicht hin, bei der Simulink-Simulation den hier rot-markierten Pfad zu verbinden.
Aufgabenstellung:
Mein Matlab-code bisher (bitte nicht lachen):
ich hätte jetzt z.B. in der ersten Zeile schon function[farbe]=Ameplregelung(Zeit) da stehen gehabt, aber als ich einen Matlab-Block in Simulink reingezogen hab, hat er das schon so übernommen.
Run-Model sagt:
Zitat: |
Function 'MATLAB Function' (#36.58.59), line 3, column 9:
"=" |
glaube das ist alles falsch ^^
Hat jemand einen anderen Befehl zum ansetzen mit dem ich arbeiten kann? bzw Befehle?
LG und Danke =)
|
|
|
Nras |

Forum-Meister
|
 |
Beiträge: 608
|
 |
|
 |
Anmeldedatum: 21.02.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: 7.12.0.635 (R2011a)
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 15:52
Titel:
|
 |
Hallo,
mit Simulink arbeite ich nicht, da kann ich dir nichts zu sagen. Aber da gibt es hier auch Leute, die dir das sicher erklären können.
Viele Grüße,
Nras.
|
|
|
Che |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 9
|
 |
|
 |
Anmeldedatum: 10.03.14
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2013b
|
 |
|
|
 |
|
Verfasst am: 11.03.2014, 16:14
Titel:
|
 |
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|