Fuctions: Multiple inputs & outputs with if statements
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello,
I'm an amatuer user of Matlab and I'm looking to enhance my knowledge of coding.
I've written a code in the past to calculate relative permeabilty using functions.
I had a separate function file for water, and another for oil both involving if/elseif/else statements.
I'm trying to make my code more efficient and combine both functions into one function with multiple inputs/outputs.
But I'm not getting the same answer that I'm expecting and getting with seperate function files. Why is that? and how can I resolve it?
Thanking you in advance.
Code for Oil Relative Permeability:
function kro = rel_perm_oil(So,Swr,Sor,no,krostar)
% Calculation of Oil Relative Permeability
if So <= Sor
kro = 0;
elseif So >= 1 - Swr
kro = krostar;
else
kro = krostar*(((So-Sor)/(1-Sor-Swr))^no);
end
Code for Water Relative Permeability:
function krw = rel_perm_wat(Sw,Swr,Sor,nw,krwstar)
% Calculation of Water Relative Permeability
if Sw <= Swr
krw = 0;
elseif Sw >= 1-Sor
krw = krwstar;
else
krw = krwstar*(((Sw-Swr)/(1-Sor-Swr))^nw);
end
Combined code for both oil & water permeabilities:
function [krw,kro] = rel_perm(Sw,So,Swr,Sor,nw,no,krwstar,krostar)
% Calculation of Relative Permeability
% Water Relative Permeability
if Sw <= Swr
krw = 0;
elseif Sw >= 1-Sor
krw = krwstar;
else
krw = krwstar*(((Sw-Swr)/(1-Sor-Swr))^nw);
end
% Oil Relative Permeability
if So <= Sor
kro = 0;
elseif So >= 1 - Swr
kro = krostar;
else
kro = krostar*(((So-Sor)/(1-Sor-Swr))^no);
end
0 Commenti
Risposta accettata
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Partial Differential Equation Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!