【发布时间】:2014-08-27 05:36:50
【问题描述】:
我有一个矩阵
FT= {{0, 0, 0}, {1, 1, 1}, {1, 1, 2}, {1, 1, 3}, {1, 2, 1}, {1, 2, 2}, {1,
2, 3}, {1, 3, 1}, {1, 3, 2}, {1, 3, 3}, {2, 1, 1}, {2, 1, 2}, {2,
1, 3}, {2, 2, 1}, {2, 2, 2}, {2, 2, 3}, {2, 3, 1}, {2, 3, 2}, {2, 3,
3}, {2, 4, 1}, {2, 4, 2}, {2, 4, 3}, {2, 5, 1}, {2, 5, 2}, {2, 5,
3}, {2, 6, 1}, {2, 6, 2}, {2, 6, 3}, {3, 1, 1}, {3, 1, 2}, {3, 1,
3}, {3, 2, 1}, {3, 2, 2}, {3, 2, 3}, {3, 3, 1}, {3, 3, 2}, {3, 3,
3}, {3, 4, 1}, {3, 4, 2}, {3, 4, 3}, {3, 5, 1}, {3, 5, 2}, {3, 5,
3}, {3, 6, 1}, {3, 6, 2}, {3, 6, 3}, {3, 7, 1}, {3, 7, 2}, {3, 7,
3}, {3, 8, 1}, {3, 8, 2}, {3, 8, 3}, {3, 9, 1}, {3, 9, 2}, {3, 9,
3}, {3, 10, 1}, {3, 10, 2}, {3, 10, 3}, {3, 11, 1}, {3, 11, 2}, {3,
11, 3}, {3, 12, 1}, {3, 12, 2}, {3, 12, 3}}
其中每一行代表每个元素的一种地址,其第一个元素给出 G,第二个元素给出 B,第三个元素给出 M。例如对于第三个元素,G 为 1,B 为 1,M 为 2,依此类推。现在我需要为每个元素生成一个矩阵,这样每当我的 G 为 0 或 1 时,它都会给我 {0,0,0} 并且对于 G>1,它会给我 G-1、G-2 等行直到它给出 1;对于 B,它会检查 B 是否为偶数,它返回 B/2,每当 B 为奇数时,它返回 (B+1) /2 并且 M 每次都取值为 3,最后是一行 {0,0,0} .例如对于 FT= {3,12,3} 的最后一个元素,它应该给我 {{2,6,3}, {1,3,3}, {0,0,0}} 而对于 FT= {2,5,1} 它应该给我{{1,3,3}, {0,0,0}}。
你能帮我在mathematica中为此编写代码吗?
在此先感谢:)
【问题讨论】:
标签: matrix wolfram-mathematica