我有一个类型为double的矢量让我们说 vec 。当我执行例如
时 test=vec.^ 1.4623;
我最终将测试作为复杂的双类型,我想知道是否有办法将测试转换为双重,因为我想获得小数值。 ps:值得高兴,我对从以下网址检索的实数不感兴趣:
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
由于
答案 0 :(得分:1)
你可以暂时"删除"减号,导致复数:
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