Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-09-29
年龄: 37
帖子: 4
声望力: 0 ![]() |
![]()
>> a=[-1 -0.5 -0.2]'
a = -1.0000 -0.5000 -0.2000 >> a.^(1/3) ans = 0.5000 + 0.8660i 0.3969 + 0.6874i 0.2924 + 0.5065i 不是应该返回几个负数么,怎么是复数 此帖于 2009-04-15 15:14 被 iamhuxiaolei 编辑。 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-04-15
帖子: 2
声望力: 0 ![]() |
![]()
-1开平方或次方都会产生复数。
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-09-29
年龄: 37
帖子: 4
声望力: 0 ![]() |
![]()
但是单个数的时候就不存在这个问题,想不明白怎么回事。
>> -0.5^(1/3) ans = -0.7937 >> -1^(1/3) ans = -1 |
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21 ![]() |
![]()
建议你用点小小的技巧噻:
a=[-1 -0.5 -0.2]; b=-abs(a.^(-1/3)) 因为Matlab很多运算都是按照复数规则进行的,比如矩阵的转置等等
__________________
坚持就是胜利,努力就有奇迹。 |
![]() |
![]() |