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

Funktionswerte aus einer for-Schleife in Vektor speichern

 

Fubaaa88
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 04.05.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2019, 09:07     Titel: Funktionswerte aus einer for-Schleife in Vektor speichern
  Antworten mit Zitat      
Hallo zusammen,

mal wieder muss ich euch um Rat bitten.

ich habe folgende Funktion die mir aus Temperaturverläufen die Stellen (Schnittpunkte SP) berechnet, an denen die Temperaturen gleich sind.

Code:
function [SP,SP2]=Schnittpunkt(T_Wand, T_Gas, Messstelle, ZOT_Lage, Aufloesung)

%% Parametern kurze Formelzeichen zuweisen
Tw = T_Wand;
Tg_einzeln = T_Gas;
e = Messstelle;
ZOT = ZOT_Lage;

%% Berechnung
h=1:length(Tw)-1;   %temporärer Vektor um alle Werte gleichzeitig zu vergleichen

tmp=find( (Tw(h,e)-Tg_einzeln(h))>0 & (Tw(h+1,e)-Tg_einzeln(h+1))<=0 ); %findet die Stellen h  an denen (bzw. den Index des Messwertes für den) Bedingung erfüllt ist
temp=find(tmp<(ZOT/Aufloesung),1,'last');    %findet die letzte Stelle an dem der Index noch kleiner (laenge/2) ist --> vor OT
temp=tmp(temp);                 %wählt das h welches als letztes vor OT ist
mw = Tw(temp+1,e)-Tw(temp,e);   %Steigung m der Geraden zw. dem KW-k & KW-(k+1) für Wandtemp.
mg = Tg_einzeln(temp+1)-Tg_einzeln(temp);       %und für Gastemperatur
SP(e) = ((Tw(temp,e)- mw*temp)-(Tg_einzeln(temp)- mg*temp))/(mg-mw); %Schnittpunkt vor OT
SP(e) = SP(e)*Aufloesung;     %Schnittpunkte in [°KW] umrechnen
clear('tmp','temp');            %temporäre Variablen löschen

tmp=find( (Tw(h,e)-Tg_einzeln(h))<0 & (Tw(h+1,e)-Tg_einzeln(h+1))>=0 ); %findet die Stellen h an denen (bzw. den Index des Messwertes für den) Bedingung erfüllt ist
temp=find(tmp>(ZOT/Aufloesung),1,'first');    %findet die erste Stelle an dem der Index noch größer (laenge/2) ist --> nach OT
temp=tmp(temp);                 %wählt das h welches als erstes nach OT ist
mw = Tw(temp+1,e)-Tw(temp,e);   %Steigung m der Geraden zw. dem KW-k & KW-(k+1) für Wandtemp.
mg = Tg_einzeln(temp+1)-Tg_einzeln(temp);       %und für Gastemperatur
SP2(e) = ((Tw(temp,e)- mw*temp)-(Tg_einzeln(temp)- mg*temp))/(mg-mw); %Schnittpunkt vor OT
SP2(e) = SP2(e)*Aufloesung;     %Schnittpunkte in [°KW] umrechnen
% clear('h','tmp','temp');        %temporäre Variablen löschen
 


im Hauptprogramm rufe ich die Funktion im Rahmen einer for-schleife (for e=1:9) für alle 9 Messstellen mit folgendem Code auf:
Code:
[SP,SP2] = Schnittpunkt(Tw,Tg_einzeln,e,180,1);


Momentan bekomme ich Ergebnisvektoren die nach allen Schleifendurchläufen so aussehen:

SP[0,0,0,0,0,0,0,0,70.245]
SP2 [0,.....,0,Wert]

Es werden die vorherig berechneten Schnittpunkte immer zu "0".

Ich weiß leider nicht, wie ich es schaffe das meine SP-Vektoren alle 9 Werte enthalten, und wäre froh wenn mir jemand helfen könnte.

Vielen Dank

Grüße Fubaaa88
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.06.2019, 10:17     Titel:
  Antworten mit Zitat      
Hallo,

auf den ersten Blick würde ich das vorschlagen:
Code:
[SP(e),SP2(e)] = Schnittpunkt(Tw,Tg_einzeln,e,180,1);


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Fubaaa88
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 04.05.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.06.2019, 11:09     Titel:
  Antworten mit Zitat      
Hallo Harald,

Es hat geklappt Smile !!!

Vielen Dank für deine schnelle Antwort!

Grüße

Fubaaa
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 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.