24小时热门版块排行榜    

查看: 274  |  回复: 3
当前主题已经存档。

quartzbj

金虫 (正式写手)

[交流] 【讨论】矩阵部分数赋值问题?

一个矩阵A:
4   5     16     17   18   9  
2   20   30    40   9     0
3   20    8      6    7     0
31  40  18    8    19    6
1    83    2      6   7    18



希望把矩阵A大于10的数先挑出来赋值为1,其它为0,

第二步, 但是如果同一行连续有两个1, 就把原来矩阵A中相应数比较小的再赋值为0,不连续的点保持不变。

第三步,如果某个1周围8个点都为0,把原来矩阵A中对应数比较大的再赋值为1.

老是循环使用不好,怎么办?

[ Last edited by quartzbj on 2009-11-18 at 08:54 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjliu1265

至尊木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
kuhailangyu(金币+2,VIP+0):谢谢参与 11-18 11:11
第一步不用循环容易实现,但是后面两步不用循环比较麻烦。
其实循环也不是不好,我个人认为写程序首要的是写出来准确
的程序,其次才是去优化程序。

顺便问一下,你的问题是和元胞自动机相关么?

我写了一段程序如下,仅供参考:

A=[4,5,16,17,18,9;...
        2,20,30,40,9,0;...
        3,20,8,6,7,0;...
        31,40,18,8,19,6;...
        1,83,2,6,7,18];

% step 1
Ao=A;
A(A<=10)=0;
A(A>10)=1;
A
% step 2
[x,y]=find([A(1:end-1,+A(2:end,]>1.5);
Ix1=sub2ind(size(A),x,y);
Ix2=sub2ind(size(A),x,y+1);
Ix1,Ix2
[xx,Ix]=min([Ao(Ix1),Ao(Ix2)],[],1);
Ao(Ix1(Ix<1.5))=0;
Ao(Ix2(Ix>1.5))=0;

% step 3
S=A(1:end-2,2:end-1)+A(3:end,2:end-1)+...
    A(2:end-1,1:end-2)+A(2:end-1,3:end)+...
    A(1:end-2,1:end-2)+A(3:end,1:end-2)+...
    A(1:end-2,3:end)+A(3:end,3:end);
[x,y]=find(S<0.5);
dx=[-1,0,1,-1,1,-1,0,1];
dy=[-1,-1,-1,0,0,1,1,1];
for k=1:length(x);
    xn=x(k)+dx;
    yn=y(k)+dy;
    Ix=sub2ind(size(Ao),xn,yn);
    [xx,Ik]=max(Ao(Ix));
    Ao(Ix(Ik))=1;
end

[ Last edited by zjliu1265 on 2009-11-18 at 11:04 ]
2楼2009-11-18 11:02:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

quartzbj

金虫 (正式写手)

谢谢,想做边界检测
3楼2009-11-18 18:46:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hitzhang

木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
sunxiao(金币+2,VIP+0):谢谢专家 11-19 01:00
引用回帖:
Originally posted by quartzbj at 2009-11-18 18:46:
谢谢,想做边界检测

第二步只针对行吗?碰到3个4个连续的怎么办?第三步只针对矩阵内部的格点吗?对于矩阵边界上的格点,周围只有3个或5个的怎么办?老是循环是什么意思?
4楼2009-11-18 21:06:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 quartzbj 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 面上项目filecode邪修 +4 西山十月 2026-08-09 6/300 2026-08-10 00:16 by liufeng0619
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +7 Lanmanbaby 2026-08-09 14/700 2026-08-09 23:33 by Tide man
[基金申请] 关于代码变化问题,想知道的进来 +15 且听虎啸 2026-08-07 22/1100 2026-08-09 22:13 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 仁砚薪传
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 基金中了 +14 laoda193707 2026-08-06 14/700 2026-08-08 00:23 by 实验小白ha
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 娱乐 +6 Tide man 2026-08-03 6/300 2026-08-07 22:40 by 铁帽子农民
[基金申请] 化学口download_prp&amp;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变了 +24 布布和一二 2026-08-06 47/2350 2026-08-07 16:02 by zhiyanjiang
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
[基金申请] 有没有H口的?有收到消息的吗? +3 超级海虾 2026-08-04 3/150 2026-08-04 17:26 by 学教育滴
[基金申请] 纯娱乐,不喜欢勿喷 +7 Tide man 2026-08-04 10/500 2026-08-04 15:10 by loufangrui
信息提示
请填处理意见