Matlab Funktion in Funktion implementieren

Neue Frage »

steviehawk Auf diesen Beitrag antworten »
Matlab Funktion in Funktion implementieren
Meine Frage:
Hallo Leute, ich habe eine Frage. Und zwar bin ich dabei eine "größere" Matlabfunktion zu schreiben, in dieser ich eine weitere Funktion, die ich als extra m.File schon geschrieben habe verwenden möchte. Auf meinem Rechner geht das natürlich leicht, denn Matlab kennt ja die Funktion. Wenn ich die "größere" Funktion aber an jemanden weiterleite, dann funktioniert die ja nicht mehr, weil in ihr Funktionen verwendet werden, die der andere ja nicht hat.

Wie kann ich also diese kleine Funktionen in die große einbauen?

Meine Ideen:
Kann ich die einfach mit in die Funktion reinschreiben? Also einfach oben davor? So in etwa:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
 function lambda = vonMises(B)

v = ones(length(B),1); %Startvektor

for k=1:100 

wn = v/(sqrt(v'*v));%Normierung
v = B*wn; %Iterierter Vektor
lambda = wn'*v;


end


function [N1,N2,N3,K1,K2,Kinf] = Matrixinfo(A)


N1 = max(sum(A));

N2 = sqrt(vonMises(A'*A));

N3 = max(sum(A')');

end
 



geht das so? Das ich die vonMises function die ich der Matrixinfo verwenden möchte einfach oben hinsetze und dann am Schluss nur ein m.file habe?

Danke
Airblader Auf diesen Beitrag antworten »
RE: Matlab Funktion in Funktion implementieren
Zitat:
Auf meinem Rechner geht das natürlich leicht, denn Matlab kennt ja die Funktion.


Und wenn die andere Person alle Dateien hat, dann kennt auch deren Rechner diese Funktionen ... vorausgesetzt, sie befinden sich im Suchpfad von Matlab.

Zitat:
Original von steviehawk
Kann ich die einfach mit in die Funktion reinschreiben? Also einfach oben davor? So in etwa


Wieso probierst du es nicht einfach? Wäre es wirklich so ein Aufwand, das kurz zu speichern und zu schauen, ob es funktioniert?

Zitat:
Wie kann ich also diese kleine Funktionen in die große einbauen?


http://www.mathworks.de/help/techdoc/mat...g/f4-39683.html

air
Airblader Auf diesen Beitrag antworten »

Noch eine Anmerkung zum Code:

code:
1:
N3 = max(sum(A')');


Deutlich effizienter und um einiges schöner dürfte es so sein:

code:
1:
N3 = max(sum(A, 2));


Edit: Kleinen Fehler korrigiert.

air
steviehawk Auf diesen Beitrag antworten »

Erstmal vielen Danke für die Hilfe..

Natürlich habe ich es ausprobiert und es hat eben nicht geklappt, deshalb wollte ich wissen ob es grundsätzlich funktioniert oder ob ich nur noch irgendwo einen Fehler habe..

Nach dem ich die nested functions Hilfe gelesen habe, habe ich es auch hinbekommen

Ich habe aus dem (A')' ein (A') gemacht, für mein maximum ist es mir ja egal ob ich das in Ergebnis als Spalten oder Zeile bekomme.

ps: Die Matrixinfo läuft durch

Danke Wink
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »