Verfasst am: 19.07.2011, 09:25
Titel: Eintrag eines Vektors aufrufen, ohne diesen zu benennen
Hallo zusammen,
ich würde gerne einen Eintrag (oder mehrere) eines Vektors ansprechen, ohne den Vektor vorher zu benennen.
Um bspw. den dritten Eintrag des Vektors [1 2 3 4 5] anzusprechen, habe ich mir etwas in dieser Art vorgestellt, funktioniert aber leider nicht.
vielen Dank für deinen Vorschlag, allerdings ist das nicht das, was ich haben will. Ich versuche mal auszuholen, mit einem kleinen Minimalbsp. Ich habe eine Funktion,bspw.
also ich habe eine Funktion, nennen wir sie F, von der ich später die Nullstellen mit Hilfe eines Newton-Verfahrens bestimmen möchte. Diese Funktion hängt von einer Variablen x (Spaltenvektor) und implizit auch von "Koeffizientenfunktionen", nennen wir sie koeff ab.
Neues Minimalbsp.:
Der Befehl in F um den ersten bis vorletzten Eintrag, bzw. zweiten bis letzten Eintrag von koeff aufzurufen, ist leider falsch. Und genau diesen suche ich.
Vertändlicher??? Ich hoffe. Auf jeden Fall Danke fürs Nachdenken.
Ich möchte darauf aufmerksam machen, dass Function Handles primär zur schnellen Definition einfacher Funktionen gedacht sind. Diese verschachtelte Geschichte ist vermutlich nicht "im Sinne des Erfinders", wie man so schön sagt.
Vorschlag also: das ganze in eine oder mehrere Funktionen auslagern und auf mehrere Zeilen aufteilen, so dass es auch noch lesbar bleibt.
vielleicht habe ich mich missverständlich ausgedrückt: Ich möchte von dem Vektor "koeff", der von x abhängt und die Dimention length(x)+1 hat einmal vom ersten bis zum vorletzten, also von 1 bis length(x) laufen lassen und einmal vom zweiten bis zum letzten Eintrag, also von 2 bis length(x)+1. Diese Teileinträge sollen dann wieder mit der Länge des Vektors x übereinstimmen.
function res = fnc_F(hkoeff, hM_1, hM_2, x)
koeff = hkoeff(x);
r =@(x)repmat(koeff(1:end-1),1,length(x))*hM_1(x)*x+ repmat(koeff(2:end),1,length(x))*hM_2(x)*x;
res=r(x);
end
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
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.