MATLAB und Excel < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Hallo,
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
ich habe in MATLAB in einem M-File folgende
Funktionen:
l1=(b1/(T1-to1))*((t-to1)/(T1-to1))^(b1-1)
l2=(b2/(T2-to2))*((t-to2)/(T2-to2))^(b2-1)
.
.
.
Die Parameter b1...n, T1...n und to1...n
möchte ich aus einem Excel File (xls nicht csv)
importieren.
Das Excel File hat folgende Strukurierung:
# b T to
1 2 2000 0
2 3 1700 200
. . . .
. . . .
. . . .
Kann mir da jemand weiter helfen.
Bin noch nicht so fit in MATLAB...
Vielen Dank!
Gruß
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:30 So 23.07.2006 | Autor: | OK81 |
Hallo André,
für deine Aufgabe ist es sinnvoll zunächst das Matlab-Tool Excllink innerhalb Excel zu aktivieren um eine Kommunikation zwischen Excel und Matlab zu erzeugen. Dazu gehst du in Excel auf Extras > Add-Ins. Dort klickst du auf "Durchsuchen" und gehst in den Matlabordner ../Matlab7/Toolbox/Exlink und selektierst die Datei EXCLLINK.XLA. Nun erscheint in der Liste der verfügbaren Add-Ins eine Zeile mit der Bezeichnung Excel Link 2.2. Haken davor setzen und auf OK gehen. Von nun an wird Excel beim Start länger brauchen, da parallel mit Excel Matlab gestartet wird. Dafür stehen dir aber die Befehle PUTMATRIX und GETMATRIX zur Verfügung, mit denen du Daten zwischen Matlab und Excel transferieren kannst.
Nachdem das alles erledigt ist können wir zu deinem eigentlichen Programm kommen:
Ich gehe davon aus, dass du die Werte von Hand in Matlab bringen willst, anstatt eine Excel-Makro mit VisualBasic zu programmieren.
Zunächst selektierst du alle Zahlenwerte in der Spalte "b" und drückst anschließend auf PUTMATRIX. Dort gibst du dem neuen Vektor einen Namen. Sinnvollerweise nennst du ihn "b". Durch diese Funktion erzeugt Matlab einen Vektor b mit den Zahlenwerten aus deiner Excel-Datei im Matlab-Workspace. Führe das gleiche Prozedere für alle die Variablen T und to aus. Wichtig ist, dass alle Vektoren die gleiche Länge besitzen!
Jetzt entfernst du in deinem m-File die Nummerierung jeder Variable und fügst der Multiplikanten und Dividenden einen Punkt zu. Dadurch wird jedes Element der Vektoren einzeln berechnet.
Aus l1=(b1/(T1-to1))*((t-to1)/(T1-to1))^(b1-1) wird l=(b./(T-to)).*((t-to)./(T-to)).^(b-1)
Wenn du nun deinen m-File startest sollte im Workspace die Variable l mit den jeweiligen Ergebnissen erzeugt werden. Schau auch nochmal ob du entweder die Variable t vergessen hast, oder ob du dich im m-Code vertippt hast. Ich habe zum Test anstatt (t-to) den Befehl (T-to) verwendet.
Bei mir hat es funktioniert - falls du noch Fragen hast, melde dich nochmal....
Gruß OK81
|
|
|
|