ll710915 发表于 2006-10-3 20:30

谢谢各位的帮助,估计bainhome 要做的事情和我类似,只是我要生成的这个矩阵可能比较大,如17X17,自己原先写了一个,感觉比你们推荐的要通用一点,但觉得太麻烦了,所以追求更简单的,不知道MATLAB 有没有一个函数就能搞定的?写出我的函数,请多指教,最好能帮我改进,提高效率,谢谢:
我的 程序中子矩阵大小为方阵,且大小为奇数,这点与bainhome 的一样,函数如下:
function r=submatrix(f,x,y,L)%f为原矩阵,x,y为取点坐标,L为子矩阵大小
=size(f);
C=ceil(L/2);
R=floor(L/2);
xmin=max(x-R,1);
xmax=min(x+R,m);
ymin=max(y-R,1);
ymax=min(y+R,n);
r=zeros(L,L);
r(C-(x-xmin):C+(xmax-x),C-(y-ymin):C+(ymax-y))=f(xmin:xmax,ymin:ymax);

bainhome 发表于 2006-10-3 20:48

估计bainhome 要做的事情和我类似
不是我做的事情,恰恰就是你的事情,我整理转载而已,hoho...
不知道MATLAB 有没有一个函数就能搞定的?
应当没有
自己原先写了一个,感觉比你们推荐的要通用一点,但觉得太麻烦了,所以追求更简单的
其实思路一模一样,无所谓谁繁谁简,充零是最好的方式,省去了判断,我转载的原因一方面是想在simwe引起讨论热闹一下,一方面是家里有事情,没有整块时间编这个程序。
只是我要生成的这个矩阵可能比较大,如17X17
17×17貌似不是很大...^_^

[ 本帖最后由 bainhome 于 2006-10-3 20:50 编辑 ]

ll710915 发表于 2006-10-3 20:58

谢谢!^_^

Tla 发表于 2006-10-3 21:15

:@(
下次回贴的时候一定要多看看前面的了..
:@L

[ 本帖最后由 Tla 于 2006-10-3 21:26 编辑 ]

bainhome 发表于 2006-10-3 23:11

原帖由 Tla 于 2006-10-3 21:15 发表
:@(
下次回贴的时候一定要多看看前面的了..
:@L
不会吧!原创者这么快就来了^_^
其实你写得非常好,不用看前面...先说声抱歉,并无意乱串帖子,只是当版主总要出点儿力,呵呵...:lol
以前看过你和cwit的一些对话,我跟他比较熟,也了解他,你的基础相当不错,不用听他在那里胡搅合:lol:lol

[ 本帖最后由 bainhome 于 2006-10-3 23:13 编辑 ]

Tla 发表于 2006-10-4 10:42

:lol:lol
昨天找一本书,偶然就窜到这儿来了,才第一回来呢,
能得到bainhome老大的夸奖,真的是有一种飞上天的感觉了,。:@D:@D
我也顶多算个门外汉,以后有好多问题还得要老大们多多指教才行呢!
页: 1 [2]
查看完整版本: 求子矩阵的问题