24小时热门版块排行榜    

查看: 641  |  回复: 8

bin0415

银虫 (小有名气)

[求助] 求助

举个简单的例子
Table[(x)^(1/2), {x, -1, 1, 1}]
输出的结果是{-i,0,1}
由于复数解我不需要,我想令它为零(赋值虚数为零)
不知用程序手段怎么实现?
请教一下
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-07-21 22:59:10
bin0415: 金币+1, 有帮助 2012-07-22 09:55:19
这个能满足要求吧?
Table[Re[(x)^(1/2)], {x, -1, 1, 1}]
2楼2012-07-21 12:02:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoqing8569

铁杆木虫 (著名写手)

奥林匹亚光学院院长

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2012-07-21 22:59:19
da = Table[(x)^(1/2), {x, -10, 10, 1}]
For[i = 1, i <= Length[da], i++, If[Im[da[]] != 0, da[] = 0,]]
da
3楼2012-07-21 16:57:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoqing8569

铁杆木虫 (著名写手)

奥林匹亚光学院院长


jjdg: 金币+1, 感谢参与 2012-07-21 22:59:28
引用回帖:
3楼: Originally posted by xiaoqing8569 at 2012-07-21 16:57:21
da = Table
For[i = 1, i <= Length, i++, If[Im[da != 0, da]
da

CODE:
da = Table[(x)^(1/2), {x, -10, 10, 1}] For[i = 1, i <= Length[da], i++, If[Im[da[[i]]] != 0, da[[i]] = 0,]] da

4楼2012-07-21 16:58:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bin0415

银虫 (小有名气)

引用回帖:
2楼: Originally posted by mshwangg at 2012-07-21 12:02:07
这个能满足要求吧?
Table

对于这个例子你的方法能满足,是只取复数的实部,而恰好这里虚数的实部为0,然而在我的真实程序中存在实部不为0的复数,这样这个方法就不适用了。不过还是谢谢你哈
5楼2012-07-22 09:54:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bin0415

银虫 (小有名气)

引用回帖:
4楼: Originally posted by xiaoqing8569 at 2012-07-21 16:58:39
da = Table For[i = 1, i <= Length, i++, If[Im[da != 0, da] da...

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Null, 2 Null, 3 Null, 4 Null,
5 Null, 6 Null, 7 Null, 8 Null, 9 Null, 10 Null}这是运行结果,不太懂这个程序的含义,求教。
6楼2012-07-22 09:58:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoqing8569

铁杆木虫 (著名写手)

奥林匹亚光学院院长

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2012-07-23 03:57:58
引用回帖:
6楼: Originally posted by bin0415 at 2012-07-22 09:58:26
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Null, 2 Null, 3 Null, 4 Null,
5 Null, 6 Null, 7 Null, 8 Null, 9 Null, 10 Null}这是运行结果,不太懂这个程序的含义,求教。...

da = Table[(x)^(1/2), {x, -10, 10, 1}]
For[i = 1, i <= Length[da], i++, If[Im[da[]] != 0, da[] = 0,]]
da
你再试试
7楼2012-07-22 10:36:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoqing8569

铁杆木虫 (著名写手)

奥林匹亚光学院院长

引用回帖:
7楼: Originally posted by xiaoqing8569 at 2012-07-22 10:36:24
da = Table
For[i = 1, i <= Length, i++, If[Im[da != 0, da]
da
你再试试...

发表时有问题
我截张图,你再试试


8楼2012-07-22 10:38:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

【答案】应助回帖


jjdg: 金币+1, 感谢参与 2012-07-23 03:55:43
引用回帖:
5楼: Originally posted by bin0415 at 2012-07-22 09:54:49
对于这个例子你的方法能满足,是只取复数的实部,而恰好这里虚数的实部为0,然而在我的真实程序中存在实部不为0的复数,这样这个方法就不适用了。不过还是谢谢你哈...

那就这样:
Table[If[Im[(x)^(1/2)] != 0, 0, (x)^(1/2)], {x, -1, 1, 1}]
原理上和xiaoqing8569的思想是一样的,不用再做循环了
9楼2012-07-22 11:49:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 bin0415 的主题更新
信息提示
请填处理意见