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

Molenbrüche berechnen

 

Karisian
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 15.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2016, 19:21     Titel: Molenbrüche berechnen
  Antworten mit Zitat      
Hallo,

ich möchte gerne die Molenbrüche bezogen auf 1 g berechnen und die Ergebnisse in einer Tabelle darstelln. Die Tabelle soll 4 Spalten enthalten mit Molenbruch n, Massenanteil xi, m1 und m2. Die Molenbrüche von 0 bis 1 habe ich durch eine For-Schleife ausgerechnet. Wie bekomme ich nun eine Matrix mit den Ergebnissen und eine Tabelle? M1 und M2 sind die molaren Massen, xi der Massenanteil. Um auf 1 g zu kommen wird noch durch die Gesamtmasse geteilt.

Code:

M1=122.1; % in [g/mol]
M2=158.28; % in [g/mol]

for n1=0:0.1:1
xi=n1*M1/(n1*M1+(1-n1)*M2) % Massenanteil

m11=n1*M1 % Masse Substanz 1
m22=(1-n1)*M2 % Masse Substanz 2

n=n1 % Molenbruch
m1=m11/(m11+m22) % Masse 1 bezogen auf 1 g
m2=m22/(m11+m22) % Masse 2 bezogen auf 1 g
end
 


Vielen Dank schonmal!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.02.2016, 21:04     Titel:
  Antworten mit Zitat      
Hallo,

momentan überschreibst du in jeder Iteration die Ergebnisse. Empfehlenswert wäre, die Ergebnisse in einem Vektor zu sammeln. Beispielhaft:

Code:
n1=0:0.1:1;
xi = zeros(size(n1));
for k = 1:numel(n1)
xi(k)=n1(k)*M1/(n1(k)*M1+(1-n1(k))*M2) % Massenanteil
end


Allerdings brauchst du die Schleife eigentlich gar nicht, wenn du wo nötig komponentenweise Operationen nutzt:
Code:
xi = n1*M1./(n1*M1+(1-n1)*M2);


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Karisian
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 15.02.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2016, 21:54     Titel:
  Antworten mit Zitat      
Alles klar, schon Mal vielen Dank! Ich hab das nun so umgeschrieben und erhalte Vektoren für n, xi, m1 und m2.
Code:

clc;
%M1=input('Bitte molare Masse M1 eingeben:  ');
%M2=input('Bitte molare Masse M2 eingeben:  ');
M1=122.1; % in [g/mol]
M2=158.28; % in [g/mol]

n=0:0.1:1;
ni= zeros(size(n));
xi = zeros(size(n));
m1i = zeros(size(n));
m2i = zeros(size(n));

for k = 1:numel(n)
ni(k)=n(k)% Molenbruch
xi(k)=n(k)*M1/(n(k)*M1+(1-n(k))*M2) % Massenanteil
m11(k)=n(k)*M1 % Masse Substanz 1
m22(k)=(1-n(k))*M2 % Masse Substanz 2
m1(k)=m11(k)/(m11(k)+m22(k)) % Masse Substanz 1 bezogen auf 1 g
m2(k)=m22(k)/(m11(k)+m22(k)) % Masse Substanz 2 bezogen auf 1 g
end
 


Jtzt müsste ich nur noch eine Tabelle mit n, xi, m1 und m2 erstellen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.02.2016, 22:21     Titel:
  Antworten mit Zitat      
Hallo,

wie wäre es mit
Code:
T = [n; xi; m1; m2]'


Wenn du noch Überschriften haben möchtest, schau dir mal table an. Und wie gesagt: man kommt da auch bequem ohne for-Schleifen aus.

Grüße,
Harald
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 - 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.