WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

For-Schleife mit cell in Funktion

 

Metz[ger]

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.03.2012, 22:07     Titel: For-Schleife mit cell in Funktion
  Antworten mit Zitat      
Hallo,
ich habe eine etwas größere Datei und möchte der Übersicht wegen mehrere m-files daraus machen. Um darauf zugreifen zu können versuche ich mir gerade überall eine Funktion draus zu basteln. Da in den einzelnen files cells über for-Schleifen gefüllt wurden, habe ich nun mit dem Zugriff auf einzelne Werte innerhalb der cell Probleme.

Als vereinfachte Funktion
Code:
function [vz] = Zyklus()
vz = @e;
function F = e(t)
for k = 1:2
qwe{k}=k;
F{k} = -4.1667e-004*t.^2+0.5*t+1+qwe{k};
end


Ich kenne mich mit Funktionen leider nicht so gut aus. In der nächsten m-file lade ich die Funktion mit
Code:
[vz] = Zyklus();

und greife auf einen Wert zu mit
Code:

Ausgegeben bekomme ich aber sowas hier: [25.9583] [26.9583]
Ich möchte aber nur einen Wert für k und für t eingeben, um dann ein genaues Ergebnis zu erhalten. Muss ich jetzt noch irgendwo ein {k} einbauen?? Habe schon eine Weile rumprobiert und wäre dankbar über Hilfe!!!

Gruß Metz[ger]


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.03.2012, 08:54     Titel:
  Antworten mit Zitat      
warum definierst du ne funktion die als rückgabe wert nur eine funktion hat Smilekönntest dir den schritt doch gleich sparen.
Code:

vz=@(t,k) -4.1667e-004*t.^2+0.5*t+1+k;
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Metz[ger]

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.03.2012, 15:54     Titel:
  Antworten mit Zitat      
War vllt. ein blödes Beispiel. Ich will von einer anderen m-file auf Werte der Funktion Fr5{i}(t) zugreifen.
Code:
FRo{1} = [0 55;300 47;600 44;900 43.3;1200 43;1500 43;2100 42.5; 2400 42.1];
FRo{2} = [0 43.1;180 41;480 40;780 39.5];
FRo{3} = [0 44.5;180 43.3;480 42;780 41.5];
FRo{4} = [0 46.5;60 45;360 42.2;660 41.5];
FRo{5} = [0 48;75 47.5;375 46;675 45.2;735 44.9];
FRo{6} = [0 54.5;60 52.5;210 50;660 49.5];

for i = 1:6    

fo5 = fitoptions('method','NonlinearLeastSquares',...
    'Startpoint',   [22        2.3215e-004    0.1],...
    'Lower',        [-60      -5   0],...
    'Upper',        [60      5  60],...
    'Algorithm','Trust-Region',...
    'MaxIter',20000000,...
    'DiffMaxChange',1,...
    'Robust','off',...
    'TolFun',1e-7,...
    'TolX',1e-6,...
    'MaxFunEvals',1000);

ft5 = fittype('d1*exp(-d2*t)+d3',...
     'dependent',{'y'},'independent',{'t'},...
     'coefficients',{'d1', 'd2', 'd3'});
f_Fr = fit(FRo{i}(:,1),FRo{i}(:,2),ft5,fo5);
C5{i} = coeffvalues(f_Fr);
Fr5{i} = @(t) C5{i}(1)*exp(-C5{i}(2)*t)+C5{i}(3);
end


Bisher habe ich nur
Code:
function [FR5] = F_R()
FR5 = @e5;
function Fr5 = e5(t)
darüber eingefügt und komme nur verschachtelt mit mehreren Aufrufen an den gewünschten Wert. Wie kann ich denn in der nächsten file direkt auf z.B. Fr5{2}(t) oder Fr5{2}(35) zugreifen (sodass ich den Vektor oder eben den genauen Wert ausgegeben bekomme)??
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.