|
|
|
Hilfe für einfaches programm.... |
|
| Heisenberg |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.10.2011, 14:04
Titel: Hilfe für einfaches programm....
|
 |
Also ich brauche etwas Hilfe mit Matlab, da es bei mir schon einige Semester her ist dass ich damit gearbeitet habe.
Ich habe ein Programm, bei dem am ende die 4 Winkel theta ausgegeben werden sollen. dabei sind alle variablen bekannt, außer x und y , die sollen dann von mir eingegeben werden.
ich habe jetzt mal alles in matlab aufgeschrieben aber natürlich geht es nicht, da wie ich vermute nicht nur eine sache falsch ist.
was muss ich denn alles ändern bzw korriegieren damit es so läuft wie ich mir das vorstelle?
bitte nich steinigen, ich bin wirklich neuling auf dem gebiet.
Danke schonmal!
|
|
|
|
|
|
| DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 06.10.2011, 14:48
Titel:
|
 |
Und was genau funktioniert nicht?
Wenn der Rückgabewert im Funktionskopf r heißt, muss die Variable auch innerhalb der Funktion vorhanden sein.
|
|
|
|
| coopers |

Forum-Anfänger
|
 |
Beiträge: 10
|
 |
|
 |
Anmeldedatum: 27.09.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.10.2011, 14:56
Titel:
|
 |
Du kannst das ganze doch auch einfach als Skript ausführen.
Entferne einfach die erste und letzte Zeile deines Codes.
Wenn x,y schon in einer Datei vorliegen, kannst du sie noch mit 'load' am Anfang des Skripts in den Workspace laden.
Viele Grüße!
|
|
|
|
| Heisenberg |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.10.2011, 16:10
Titel:
|
 |
puh ich buin ein wenig überfordert!
ich möchte im endefekt für x und y werte eingeben und will dann dann dass mir matlab die 4 theta werte ausspuckt? was muss ich denn jetzt genau ändern?
grüße
|
|
|
|
| DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 06.10.2011, 16:16
Titel:
|
 |
An der Funtkion erstmal nicht viel...nur der Output.
Jetzt rufst du die Funktion im Command Window oder einem anderen m-file so auf:
|
|
|
|
| Heisenberg |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 06.10.2011, 16:45
Titel:
|
 |
ok es funktioniert schonmal nur irgendwie sind die werte nicht ganz richtig komischerweise, ich muss das nochmal prüfen!
aber vielen dank schonmal!!
grüße
|
|
|
|
| Heisenberg |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.10.2011, 15:19
Titel:
|
 |
| |
 |
|
so das programm spuckt mittlerweile die richtigen ergebnisse aus, wie ich sie brauche.
eine frage hätte ich da aber noch:
das ergebniss wird jetzt wie folgt angezeigt:
theta =
45.0000 -80.2317 67.0532 -89.4116
ich hätte gerne das da steht theta1=..., theta2=... usw usw
wie ist das machbar?
und noch eine frage: ist es möglich die werte in eine excel datei/*.txt-datei abspeichern zu lassen? da ich mit catia auf diese werte zugreifen muss...
hier nochmal das endprogramm:
function theta = robot(x,y)
l1 = 335;
l2 = 365;
l3 = sqrt(171769);
l4 = 405;
l5 = 104;
a = 75;
b = 231;
c = 88;
s1 = sqrt(x^2 + y^2) - a;
s2 = sqrt(b^2 + s1^2);
theta(1) = ( atan2 (y,x) )/ pi * 180;
theta(2) = acosd ((b^2 + s2^2 - s1^2)/(2*b*s2)) + acosd ((l2^2+s2^2-l3^2)/(2*l2*s2))-180;
theta(3) = 180 - acosd ((l2^2+l3^2-s2^2)/(2*l2*l3)) - acosd ((c^2+l3^2-l4^2)/(2*c*l3));
theta(4) = 90 - acosd ((s1^2+s2^2-b^2)/(2*s1*s2)) - acosd ((s2^2+l3^2-l2^2)/(2*s2*l3)) - acosd ((l3^2+l4^2-c^2)/(2*l3*l4));
end
danke schonmal
|
|
|
|
| soad |

Forum-Century
|
 |
Beiträge: 150
|
 |
|
 |
Anmeldedatum: 10.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 19.10.2011, 17:49
Titel:
|
 |
|
|
|
| Heisenberg |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.10.2011, 00:34
Titel:
|
 |
Pack ich den code einfach ans
Ende vom programm??
Jemand ne idee zwevks überführung in excel?
Oder wäre ea noch einfacher das ganze programm in excel zu schreiben?
Gruß
|
|
|
|
| soad |

Forum-Century
|
 |
Beiträge: 150
|
 |
|
 |
Anmeldedatum: 10.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.10.2011, 13:37
Titel:
|
 |
| Heisenberg hat Folgendes geschrieben: |
Pack ich den code einfach ans
Ende vom programm??
|
Dort, wo du die Ausgabe haben möchtest .
| Heisenberg hat Folgendes geschrieben: |
Jemand ne idee zwevks überführung in excel?
Oder wäre ea noch einfacher das ganze programm in excel zu schreiben?
Gruß |
Entweder mit XLSWRITE oder du schreibst die Werte als csv-file.
|
|
|
|
| Heisenberg |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.10.2011, 16:50
Titel:
|
 |
fast perfekt!
das bekomm ich ausgespuckt:
>> theta=robot(x,y)
theta 1 = 0.0000
theta 2 = -62.1313
theta 3 = 25.8328
theta 4 = 2.0359
theta =
0 -62.1313 25.8328 2.0359
den unteren teil brauche ich nicht wo nur theta mit den 4 werten steht, wie bekomme ich den weg?
und kannst du mir das mit dem excel etwas erklären? brauche ich da eine zusatzsoftware oä?
|
|
|
|
| soad |

Forum-Century
|
 |
Beiträge: 150
|
 |
|
 |
Anmeldedatum: 10.11.08
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 20.10.2011, 18:18
Titel:
|
 |
Du hast das Semikolon beim Funktionsaufruf vergessen, damit unterdrückst du die Ausgabe.
Mit XLSWRITE kannst du die Werte in ein Excel spreadsheet schreiben - Zusatzsoftware benötigst du keine.
|
|
|
|
| Heisenberg |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 21.10.2011, 12:54
Titel:
|
 |
@ soad: Danke dir schonmal, warst mir eine große Hilfe!!
kannst du mir abern och im einzelnen erklären was dieser code bedeutet?
disp(sprintf('Theta %i. = %.4f\n', [1:length(theta); theta]))
was er genau macht und was die einzelnen befehle bedeuten?
und könntest du mir das mit excel etwas näher erläutern? hab keine ahnung wo ich diese funktion finde geschweige denn anwende
danke schonmal und eine schönes wee!
gruß
|
|
|
|
| Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 21.10.2011, 13:09
Titel:
|
 |
Hallo Heisenberg,
| Zitat: |
| kannst du mir abern och im einzelnen erklären was dieser code bedeutet? |
Ich empfehle das Lesen der Dokumentation, insbesondere der "Getting Started"-Kapitel. Die Funktion spezieller Befehle ergründet man am besten mit "help" und "doc":
Wenn man eine so machtvolle Sprache wie MATLAB benutzen möchte, kommt man um das Lernen nicht herum.
Gruß, Jan
|
|
|
|
| DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 21.10.2011, 13:11
Titel:
|
 |
Schau dir doch bitte erstmal die entsprechenden Befehle in der Doku an...Klick mich
Dort werden wohl 90% deinen Fragen beantwortet. Sollte dann noch etwas spezielles unklar sein, hilft dir sicherlich das Forum. Zum Thema xlswrite findet man hier unzählige Threads mit Lösungen.
|
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
|
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.
|
|