转换MATLAB类型:从复杂的双倍到双倍

问题描述:

我得到了一个类型双的矢量我们说vec。当我比如执行转换MATLAB类型:从复杂的双倍到双倍

test=vec.^ 1.4623; 

我结束了测试复杂的双类型,我想知道是否有一种方法来转换测试,因为我想获取小数值。 PS:值得highligthing,我不是有意从检索到的实数:

real(test) 

作为例证:

vec(2)^1.4623 = -1.8293^1.4623 = -2.4185 

而是我得到:

test(2)=vec(2)^1.4623= -0.285678007027767 - 2.40147255196906i 

在简而言之,一种转换方式:

test(2) = -2.4185 

感谢

你暂时可以 “删除” 减号,这使得复数:

vec = [-2.5, 2, -1.5 , 1, -0.5, 0]; 
sign_vec = sign(vec); 
test = sign_vec.*((sign_vec.*vec).^1.4623); 

这导致:

test = 
     -3.8186 2.7555 -1.8092 1.0000 -0.3629   0 

转换的一个通用的方法包括abs功能:

>> test = (-1.8293)^1.4623 
test = 
     -0.2858 - 2.4015i 

>> -abs(test) 
ans = 
    -2.4185 
+0

太棒了!非常好的“诀窍”,欢呼声。 – owner