这是我从Matlab输出的数据;
a Aerobic Anaerobic
'Ex_Cl' -0.00775597205802433 -0.00775597205802011
'Ex_Sulfate' -0.100000000000000 -0.100000000000000
'Ex_Cu2+' -0.00517064803868288 -0.00517064803868008
'Ex_Mg' -0.0129249011312688 -0.0129249011312618
'Ex_Ca2+' -0.00775597205802433 -0.00775597205802011
'Ex_NH3' 0 4.24088035850684
'Ex_H2O' -10 -10
'Ex_Biomass' 1.71896543839192 1.71896543839098
'Ex_Butyrate' 0 0总共有184行。col的名称分别是a、需氧和厌氧。
我正在尝试创建一个for循环,只选择有氧和无氧之间不同的代谢物,而且也只是正代谢物。
表格是由d=table(a,需氧,厌氧)形成的。这是我的代码,试图只获得一个新的表,其中只包含正值,这是不同的有氧和厌氧。
j=1
for i=1 : height (d)
if (b(i) ~= c(i))
difExc(j, 1:3) = d(i, 1:3)
j=j+1
else
continue;
end
end然后我想创建一个新的表
difExc=table(a, Aerobic, Anaerobic)我得到了不同的比特,但我不确定如何调整代码,也就是只选择那些积极的和有氧和无氧之间的不同。
任何帮助都将不胜感激。
谢谢--
发布于 2019-12-13 18:19:22
您可以使用逻辑索引来查找不同的值。这是我使用的数据
a = [...
"Ex_Cl"
"Ex_Sulfate"
"Ex_Cu2+"
"Ex_Mg"
"Ex_Ca2+"
"Ex_NH3"
"Ex_H2O"
"Ex_Biomass"
"Ex_Butyrate"];
Aerobic = [ ...
-0.00775597205802433
-0.100000000000000
-0.00517064803868288
-0.0129249011312688
-0.00775597205802433
0
-10
1.71896543839192
0];
Anaerobic = [ ...
-0.00775597205802011
-0.100000000000000
-0.00517064803868008
-0.0129249011312618
-0.00775597205802011
4.24088035850684
-10
1.71896543839098
0];这就是找到不同之处:
different = Aerobic ~= Anaerobic;
T = table(a(different), Aerobic(different), Anaerobic(different))结果
T =
6×3 table
Var1 Var2 Var3
____________ __________ __________
"Ex_Cl" -0.007756 -0.007756
"Ex_Cu2+" -0.0051706 -0.0051706
"Ex_Mg" -0.012925 -0.012925
"Ex_Ca2+" -0.007756 -0.007756
"Ex_NH3" 0 4.2409
"Ex_Biomass" 1.719 1.719https://stackoverflow.com/questions/59313736
复制相似问题