why i get 'complex double' type?
92 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
ali yaman
le 21 Juil 2021
Commenté : ali yaman
le 22 Juil 2021
Hi, i have below code. When run it i get kro as complex double.
Do you have any idea about why it is complex number, and how i can fix it.
By the way krw is not complex, just kro is complex.
thanx
swi=0.328; sor=0.205;
sw=linspace(swi,1-sor,100);
swd=(sw-swi)./(1-swi-sor);
kro=(1-swd).^2.56;
krw=0.78*(swd).^3.72;
0 commentaires
Réponse acceptée
Walter Roberson
le 21 Juil 2021
Although algebraically the maximum swd value should be 1 exactly, because of round-off error it turns out to be just slightly greater than 1. Then 1 minus that can be just slightly negative. Negative raised to a fraction is complex.
Take min(swd, 1)
3 commentaires
Walter Roberson
le 21 Juil 2021
swd = min(swd, 1);
means the same thing as
for K = 1 : numel(swd)
if swd(K) > 1; swd(K) = 1; end
end
That is, at any time, you take the minimum of what is in swd, compared to the constant 1. Any swd entry that is greater than 1 will be reduced to 1.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!