24小时热门版块排行榜    

查看: 835  |  回复: 6

sss668800

金虫 (小有名气)

[求助] Mathematica如何生成2D有界区域的坐标矩阵? 已有2人参与

如果是一个正方区域直接用Table[{i, j}, {i, 2.0, 3.0, 0.5}, {j, 400, 600, 100}]就可以了
得到:{{{2., 400}, {2., 500}, {2., 600}}, {{2.5, 400}, {2.5, 500}, {2.5,600}}, {{3., 400}, {3., 500}, {3., 600}}}

但是如果是一个直线围成的平行四边形区域,直接用Table:
Table[{i, j}, {i, 0.003*j + 1.10, 0.003*j + 1.13, 0.01}, {j, 400, 600,100}]
得;{{{2.3, 400}, {2.6, 500}, {2.9, 600}}}
仅有第一个函数0.003*j + 1.10起作用,而我希望的是一个0.003*j + 1.10,和0.003*j + 1.13直线围成的平行四边形区域,对每个j值均以0.5步长等分

如果Table[Table[i, {i, 0.003*j + 1.10, 0.003*j + 1.13, 0.01}], {j, 400, 600, 100}]
j确实起作用得到:{{2.3, 2.31, 2.32, 2.33}, {2.6, 2.61, 2.62, 2.63}, {2.9, 2.91, 2.92, 2.93}}
但是我需要的是坐标形式,不是单一的i,需要{i,j}形式
请问我应该怎么做才能达到和正方区域一样的结果?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

leicahfs

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
sss668800: 金币+6, ★★★很有帮助, 看来不同方法都可以,谢谢哈! 2015-08-16 09:41:48
xzhdty: 金币+2, 感谢参与 2015-08-17 07:39:45
可以Table[Table[{i, j}, {i, 0.003*j + 1.10, 0.003*j + 1.13, 0.01}], {j,400, 600, 100}]
得到了:
{{{2.3, 400}, {2.31, 400}, {2.32, 400}, {2.33, 400}}, {{2.6,  500}, {2.61, 500}, {2.62, 500}, {2.63, 500}}, {{2.9, 600}, {2.91, 600}, {2.92, 600}, {2.93, 600}}}
2楼2015-08-15 21:14:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
sss668800: 金币+4, ★★★很有帮助, 看来各种方法都可以啊,我再深入问一下你的方法 2015-08-16 09:49:05
xzhdty: 金币+2, 感谢参与 2015-08-17 07:39:56
2楼已经答对了,不过我能说其实这种情况一个Table就可以了吗?:
引用回帖:
Table[{i, j}, {j, 400, 600, 10}, {i, 0.003*j + 1.10, 0.003*j + 1.13, 0.01}] // ListPlot

Mathematica如何生成2D有界区域的坐标矩阵?
未命名-1.png

小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
3楼2015-08-16 08:57:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sss668800

金虫 (小有名气)

引用回帖:
3楼: Originally posted by xzczd at 2015-08-16 08:57:34
2楼已经答对了,不过我能说其实这种情况一个Table就可以了吗?:


未命名-1.png
...

多谢回答
4楼2015-08-16 09:45:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sss668800

金虫 (小有名气)

引用回帖:
3楼: Originally posted by xzczd at 2015-08-16 08:57:34
2楼已经答对了,不过我能说其实这种情况一个Table就可以了吗?:


未命名-1.png
...

再问一下,直接用正序的:Table[{i, j}, {i, 0.003*j + 1.10, 0.003*j + 1.13, 0.01}, {j, 400, 600,100}]结果是{{{2.3, 400}, {2.6, 500}, {2.9, 600}}, {{2.31, 400}, {2.61, 500}, {2.91, 600}}, {{2.32, 400}, {2.62, 500}, {2.92, 600}}}
而用你的反序的:Table[{i, j}, {j, 400, 600, 100}, {i, 0.003*j + 1.10, 0.003*j + 1.13, 0.01}]
得到:{{{2.3, 400}, {2.31, 400}, {2.32, 400}, {2.33, 400}}, {{2.6, 500}, {2.61, 500}, {2.62, 500}, {2.63, 500}}, {{2.9, 600}, {2.91, 600}, {2.92, 600}, {2.93, 600}}}
正序少了{{2.33, 400}, {2.63, 500}, {2.93, 600}}这三项,是为什么呢?
5楼2015-08-16 09:48:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

引用回帖:
5楼: Originally posted by sss668800 at 2015-08-16 09:48:17
再问一下,直接用正序的:Table结果是{{{2.3, 400}, {2.6, 500}, {2.9, 600}}, {{2.31, 400}, {2.61, 500}, {2.91, 600}}, {{2.32, 400}, {2.62, 500}, {2.92, 600}}}
而用你的反序的:Table
得到:{{{2.3, 400} ...

因为你选了浮点数做为循环的上下界和步长。浮点数计算的顺序变化的时候引发的误差也常有不同,结果“正序”的时候那三项被浮点数计算引发的误差给挤出界了。你这个例子还算温和的,实际上这种误差还可以造成更严重的影响:
http://mathematica.stackexchange.com/q/14122/1871
解决这个问题的方法很简单:使用准确数。想要数值的话最后再N一下就行了:
CODE:
Table[{i, j}, {i, 3/1000*j + 110/100, 3/1000*j + 113/100, 1/100}, {j, 400, 600, 100}] // N

小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
6楼2015-08-16 16:51:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sss668800

金虫 (小有名气)

引用回帖:
6楼: Originally posted by xzczd at 2015-08-16 16:51:28
因为你选了浮点数做为循环的上下界和步长。浮点数计算的顺序变化的时候引发的误差也常有不同,结果“正序”的时候那三项被浮点数计算引发的误差给挤出界了。你这个例子还算温和的,实际上这种误差还可以造成更严重 ...

非常感谢你的回复,分数两个回答的都给了,额外给你一朵红花哈!
7楼2015-08-17 00:38:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sss668800 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +4 Tide man 2026-08-11 4/200 2026-08-12 00:39 by liuqidi
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +17 Lanmanbaby 2026-08-09 29/1450 2026-08-12 00:24 by zhanghaozhu
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +7 布布和一二 2026-08-10 9/450 2026-08-11 22:12 by 医学老男孩
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +3 majunge000 2026-08-11 4/200 2026-08-11 20:13 by lch2012
[论文投稿] 职称评审,求友友推荐见刊最快的期刊 +3 工厂打螺丝 2026-08-08 3/150 2026-08-11 13:42 by 会议编辑
[基金申请] FileCode能看出啥? +7 要乐观耀哥 2026-08-10 17/850 2026-08-11 10:50 by 要乐观耀哥
[基金申请] filecode +9 documentary 2026-08-10 9/450 2026-08-11 10:08 by wk7465
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +8 家与远方 2026-08-10 13/650 2026-08-11 09:49 by 家与远方
[基金申请] 基金中了 +15 laoda193707 2026-08-06 15/750 2026-08-11 00:11 by jiafei2190
[基金申请] 静等基金结果 +5 gjjjzhong 2026-08-10 16/800 2026-08-10 17:19 by Tide man
[基金申请] 关于Filecode分析方法 +3 majunge000 2026-08-10 3/150 2026-08-10 15:46 by lch2012
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
信息提示
请填处理意见