How to merge values as given index in a single array

1 次查看(过去 30 天)
porindex1 = find(por<=0.47); %% por<=0.5
porindex2 = find(por>0.47&por<=0.63); %% por>0.47& por<=0.63
porindex3 = find(por>0.63);
Sw1 =Sw(porindex1);
Sw2 = Sw(porindex2);
Sw3 = Sw(porindex3);
Sg1 =Sg(porindex1);
Sg2 = Sg(porindex2);
Sg3 = Sg(porindex3);
k_fl1 = ((k_water./Sw1) -k_co2).*(1 - Sg1).^(1.2) + k_co2;
k_fl2 = ((k_water./Sw2) -k_co2).*(1 - Sg2).^(1.6) + k_co2;
k_fl3 = ((k_water./Sw3) -k_co2).*(1 - Sg3).^(2) + k_co2;
I want to merge the values of k_fl1,k_fl2, and k_fl3 values into a single array as k_fl via index position, which is defined by porindex1,porindex2, and porindex3.

采纳的回答

Voss
Voss 2023-8-28

Use logical indexing:

porindex1 = por<=0.47; %% por<=0.5
porindex2 = por>0.47&por<=0.63; %% por>0.47& por<=0.63
porindex3 = por>0.63;
exponent = zeros(size(por));
exponent(porindex1) = 1.2;
exponent(porindex2) = 1.6;
exponent(porindex3) = 2;
k_fl = (k_water./Sw - k_co2).*(1 - Sg).^exponent + k_co2;

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

标签

产品


版本

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by