找回密码
 注册
Simdroid-非首页
查看: 138|回复: 6

[数值计算] 怎么快速的得到这个c矩阵

[复制链接]
发表于 2013-4-27 14:40:35 | 显示全部楼层 |阅读模式 来自 上海
本帖最后由 derwille 于 2013-4-27 14:44 编辑

有a = {{1573, 1573}, {1573, 1574}, {1573, 1575}, {1573, 424}};
b = {1, 8, 4, 9};
形成
c = {{1573, 1573, 1}, {1573, 1574, 8}, {1573, 1575, 4}, {1573, 424,
    9}};
就是把b映射到a每一层的第三数上,
怎么弄比较快,由于实际计算的a和b都比较大,有没有比较快的方法直接形成c
发表于 2013-4-27 18:19:58 | 显示全部楼层 来自 北京
Simdroid开发平台
本帖最后由 chyanog 于 2013-4-27 18:22 编辑

回复 不支持

使用道具 举报

 楼主| 发表于 2013-4-27 19:57:04 | 显示全部楼层 来自 上海
chyanog 发表于 2013-4-27 18:19

what's up?
回复 不支持

使用道具 举报

发表于 2013-4-27 21:02:26 | 显示全部楼层 来自 北京
derwille 发表于 2013-4-27 19:57
what's up?

难道必须这样才行吗?上面已经展示了四种方法的效率
  1. a = {{1573, 1573}, {1573, 1574}, {1573, 1575}, {1573, 424}};
  2. b = {1, 8, 4, 9};
  3. Join[a, List /@ b, 2]
复制代码
回复 不支持

使用道具 举报

 楼主| 发表于 2013-4-27 21:05:28 | 显示全部楼层 来自 上海
chyanog 发表于 2013-4-27 21:02
难道必须这样才行吗?上面已经展示了四种方法的效率

谢谢,网站是不是中毒了,前面的回复就是一广告图片,没看到其他的
回复 不支持

使用道具 举报

发表于 2013-5-7 11:28:20 | 显示全部楼层 来自 江苏南京
方法1:矩阵拼接
用ArrayFlatten[{{a,b}}]

方法2:用Thread
Apply[Sequence,Thread[{a,b}],{2}]
回复 不支持

使用道具 举报

发表于 2013-5-8 09:27:59 | 显示全部楼层 来自 北京大学
c = MapThread[Flatten@{#1, #2} &, {a, b}]
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-26 13:07 , Processed in 0.030258 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表