24小时热门版块排行榜    

CyRhmU.jpeg
查看: 306  |  回复: 2
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

asdf249722

新虫 (初入文坛)

[求助] mathematica遇到的奇葩问题

D1 = Table[0, {5}, {5}];
Do[D1[[i, j]] = i + j, {i, 5}, {j, 5}]
得到的D1结果是{{2, 3, 4, 5, 6}, {3, 4, 5, 6, 7}, {4, 5, 6, 7, 8}, {5, 6, 7, 8,
  9}, {6, 7, 8, 9, 10}}
但是一旦加并行运算
D1 = Table[0, {5}, {5}];
Parallelize@Do[D1[[i, j]] = i + j, {i, 5}, {j, 5}]
D1里面的元素应该是被赋值了 但是输入D1出来的结果元素全部是0!!
简直了,尤其是 下面的语句还是并行运算 还用到了D1的元素,计算结果还是对的(D1不为0时算出的结果),简直奇葩啊,有人能告诉我这种情况(必须用到并行,还得输出D1)怎么解决么?
回复此楼

» 猜你喜欢

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

asdf249722

新虫 (初入文坛)

需要用到SetSharedVariable
3楼2014-11-14 11:23:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 3 个回答

asdf249722

新虫 (初入文坛)

额 好吧 这是个脑筋急转弯问题只需要再定义另一个矩阵
D2 = Parallelize@Table[D1[[i, j]], {i, 5}, {j, 5}];就可以了。。
2楼2014-11-14 10:04:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见