S0704082 发表于 2008-8-6 10:32

一个小计算

请问各位这个简单的问题怎么解决
已知一个边长是5和10的矩形,5的边长分为32等分,10的边长分为32等分,且一个顶点位于坐标原点,在第一象限,请问每一格点的距离?
我编的MATLAB语句为:

lx=5;
ly=10;
N=32;
dx=lx/N;
dy=ly/N;
x=0:dx:(N-1)*dx;
y=0:dy:(N-1)*dy;
r=x.^2+y.^2
结果为
r =
Columns 1 through 6
         0    0.1221    0.4883    1.0986    1.9531    3.0518
Columns 7 through 12
    4.3945    5.9814    7.8125    9.8877   12.2070   14.7705
Columns 13 through 18
   17.5781   20.6299   23.9258   27.4658   31.2500   35.2783
Columns 19 through 24
   39.5508   44.0674   48.8281   53.8330   59.0820   64.5752
Columns 25 through 30
   70.3125   76.2939   82.5195   88.9893   95.7031102.6611
Columns 31 through 32
109.8633117.3096
但是我始终感觉结果应该为32*32个数据,但是不知道感如何计算?MATLAB掌握的不好,请各位指教

sigma665 发表于 2008-8-6 12:12

lx=5;
ly=10;
N=32;
dx=lx/N;
dy=ly/N;
x=0:dx:(N-1)*dx;
for y=0:dy:(N-1)*dy;
r(:,:)=x.^2+y.^2
end
这样试试

wwbeyondww 发表于 2008-8-6 18:47

1.32等分,那就是33个点
x=0:dx:(N-1)*dx;
y=0:dy:(N-1)*dy;
为啥要N-1?

2. r是什么?不是矩形么?怎么又出来一个圆方程?

3.估计你的东西能用meshgrid

alljoyland 发表于 2008-8-6 20:04

回复 楼主 的帖子

你是要求 5的那个 每个个点到 10的每个格点的距离吧,
这比较简单吧,
你用个循环是最简单不过的事情了
for i:32
for i:32
end
end

或者外层循环,内层矩阵


纯粹矩阵,有点像直积的运算了

S0704082 发表于 2008-8-8 11:33

回复 4楼 alljoyland 的帖子

好像用=meshgrid(x,y)就可以完成,楼主所说的方法我都试过了,不行啊,用我说的命令正好实现此功能

S0704082 发表于 2008-8-8 11:34

谢谢各位指导

问题的以解决谢谢各位的指教
页: [1]
查看完整版本: 一个小计算