|
|
Matrix erstellen mit Funktionen |
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.06.2009, 10:57
Titel: Matrix erstellen mit Funktionen
|
|
Hallo liebe Matlabkundigen
ich hab da ein Problem mit meiner Studienarbeit. Muss meine Formeln in Matlab bringen und stoße dabei als Programmierlegasteniker immer wieder schnell an meine Grenzen, wie nun auch wieder. hab hier folgenden code:
Also eigentlich sollte mir dieser Code eine Matrix ausgeben. Übergebe den Vektor theta meiner Funktion. Das funktioniert auch noch. hab dann nen Vektor mit 100 Zeilen. jetzt will ich aber auch 100Spalten haben, die über w laufen. Aber obiger Code gibt immer folgenden Fehler aus:
Habs auch schon mit 2 schleifen über theta und w versucht aber da kommt das gleiche. Am schönsten wär es natürlich in der Form Escort(theta,w), so dass ich jedes Element der Matrix auch aufrufen kann, aber hab leider keine Ahnung wie das funktioniert. Ich freu mich auf Antworten und hoff dass mir hier jemand helfen kann. Auf jeden fall schon mal vielen dank im vorraus
Thomas
|
|
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.022
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2023b
|
|
|
|
|
|
Verfasst am: 12.06.2009, 11:06
Titel:
|
|
Moin,
was erwartet die Funktion "Eigenmoden" als Eingang, müssen das alles Skalare sein oder gehen auch Vektoren? Was gibt die Funktion zurück, einen Vektor oder einen einzelnen Wert? In welcher Zeile taucht der Fehler auf? Wenn schon eine Schleife, dann wenigstens eine for-Schleife und auch nicht bei 0 beginnend (das ist nur in C so) sondern bei 1, da in Matlab der erste Index 1 ist (so wie man das auch vermuten würde). Ich vermute mal alle anderen Werte, die bei dir in dem Code stehen sind Skalare, also keine Vektoren?
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?
|
|
|
Bane |
Forum-Anfänger
|
|
Beiträge: 34
|
|
|
|
Anmeldedatum: 09.06.09
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.06.2009, 11:15
Titel:
|
|
Also wenn Deine Funktion 'Eigenmoden' , wie ich vermute, eine Matrix zurückgibt, dann kannst Du sie nicht einem Skalar 'Escort(w)' zuweisen.
Dann kommt es nämlich zu Deiner Fehlermeldung.
Übergib' doch 'w' als Vektor und lasse die Schleife weg.
Man vermeidet i.d.R. Schleifen über Parameter, sondern löst das mit Indizes!
Gruß, Phil
|
|
|
Gast |
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.06.2009, 13:00
Titel:
|
|
so, hab mich jetzt auch mal angemeldet.
Also schon mal danke für eure schnellen Antworten. nun zu den Fragen. Die Funktion Eigenmoden berechnet die Wellengleichung für höhere Moden in einer GTEM-Zelle eigentlich nur an einem Punkt, also im Grunde sind alle Werte Skalare. nun hab ich eine diskrete Anzahl von Punkten genommen ( Eigentlich die Oberfläche eines Dipols) die durch den Vektor theta beschrieben sind. So erhalte ich also wenn ich nur theta als Vektor nehme auch einen Vektor mit dem Ergebnis der Wellengleichung für den jeweiligen Punkt auf meinem Dipol (das funktioniert auch). In der Funktion Eigenmoden werden auch Legendrrpolynome verwendet. Deren Indizes sind durch w gegeben. Ich will nun für jeden Punkt theta den Index von 1 bis 100 laufen lassen und so eine Matrix bekommen, die als Zeilenindex theta und als Spaltenindex w hat....
@Alex: wieso eine for Schleife?
Danke für eure Mühen
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.022
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2023b
|
|
|
|
|
|
Verfasst am: 12.06.2009, 13:33
Titel:
|
|
Moin,
also ein for-Schleife ist eine normale Zählschleife, das heißt man weiß vorher wie lange die Schleife laufen soll. Bei ein While oder Do-While-Schleife ist es so, das vor bzw. nach einem Schleifendurchlauf eine beliebige Bedingung auf ihre Gültigkeit hin überprüft wird, dass kann ein Zähler sein, es ist aber in den meisten Fällen ein Flag, der gesetzt wird.
Zu deinem Problem:
Ich hoffe das funktioniert. Wenn nicht, dann überprüfe ob in "Eigenmoden" überall die elementweisen Operatoren verwendet werden.
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?
|
|
|
Tommy1984 |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 12.06.09
|
|
|
|
Wohnort: Berlin
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.06.2009, 10:48
Titel:
|
|
Hallo Alex
wiedermal vielen Dank für deine Mühen. leider funktioniert das ganze immer noch nicht. jetzt kommt immer die Fehlermeldung:
habs auch mal mit ner for-schleife probiert:
aber da werden die werte gegen ende hin immer größer. versteh aber nicht wieso. müsste da nicht jede zeile neu belegt werden? also sollten alles werte im bereich e^-5 bis e^-6 sein aber es kommen in den letzten zeilen werte im bereich e^24 raus. ich hab jetzt mal die funktion Eigenmoden mit angehängt. vielleicht is ja auch da n fehler aber aufrufen kann ich sie ja und mit der übergabe von einem einzelnen Vektor funktioniert es ja auch.....
vielen dank
Thomas
Beschreibung: |
|
Download |
Dateiname: |
Eigenmoden.m |
Dateigröße: |
1.64 KB |
Heruntergeladen: |
429 mal |
|
|
|
steve |
Ehrenmitglied
|
|
Beiträge: 2.022
|
|
|
|
Anmeldedatum: 03.09.07
|
|
|
|
Wohnort: Wien
|
|
|
|
Version: R2023b
|
|
|
|
|
|
Verfasst am: 15.06.2009, 13:34
Titel:
|
|
steve hat Folgendes geschrieben: |
Wenn nicht, dann überprüfe ob in "Eigenmoden" überall die elementweisen Operatoren verwendet werden. |
Du musst in deiner Funktion dann auch alle Operationen auf "elementweise" ändern, d.h. in Zeile 16 müsste es dann z.B.
lauten.
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?
|
|
|
|
|
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 - 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.
|
|