How to merge values as given index in a single array

1 回表示 (過去 30 日間)
Arvind
Arvind 2023 年 8 月 28 日
コメント済み: Voss 2023 年 8 月 28 日
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;
  2 件のコメント
Arvind
Arvind 2023 年 8 月 28 日
Thank you
Voss
Voss 2023 年 8 月 28 日
You're welcome!

サインインしてコメントする。

その他の回答 (0 件)

タグ

製品


リリース

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by