转换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
太棒了!非常好的“诀窍”,欢呼声。 – owner