You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab实现6×6 0-1矩阵邻域条件更新代码开发需求

MATLAB实现:基于邻域规则更新6×6 0-1矩阵

首先我先把你提到的规则补全为通用的邻域更新逻辑(如果实际规则有差异,直接替换对应判断部分即可):

输入为6×6的0-1矩阵,遍历每个元素作为中心,根据其8邻域(上下左右+四个对角线)的元素情况更新值:

  • 当中心元素为1时:
    • 邻域中1的数量为0或1 → 中心变为0(孤立的1被消除)
    • 邻域中1的数量为2或3 → 中心保持1(稳定存活)
    • 邻域中1的数量≥4 → 中心变为0(过度拥挤死亡)
  • 当中心元素为0时:
    • 邻域中1的数量恰好为3 → 中心变为1(繁殖)
    • 其他情况保持0

完整MATLAB代码

function newMatrix = updateBinaryMatrix(originalMatrix)
    % 校验输入矩阵的尺寸和取值合法性
    if size(originalMatrix) ~= [6 6]
        error('输入矩阵必须是6×6的0-1矩阵!');
    end
    if ~all(originalMatrix(:) == 0 | originalMatrix(:) == 1)
        error('输入矩阵只能包含0和1两种值!');
    end
    
    newMatrix = zeros(6,6); % 初始化新矩阵,避免更新时覆盖原始数据
    % 遍历矩阵的每个元素
    for i = 1:6
        for j = 1:6
            centerVal = originalMatrix(i,j);
            neighborCount = 0; % 统计邻域内1的数量
            
            % 遍历8邻域的所有偏移量
            for di = -1:1
                for dj = -1:1
                    if di == 0 && dj == 0
                        continue; % 跳过中心元素本身
                    end
                    % 计算邻域元素的坐标
                    ni = i + di;
                    nj = j + dj;
                    % 边界处理:矩阵外的元素视为0
                    if ni >= 1 && ni <=6 && nj >=1 && nj <=6
                        neighborCount = neighborCount + originalMatrix(ni,nj);
                    end
                end
            end
            
            % 根据规则更新当前元素值
            if centerVal == 1
                if neighborCount <= 1 || neighborCount >=4
                    newMatrix(i,j) = 0;
                else
                    newMatrix(i,j) = 1;
                end
            else
                newMatrix(i,j) = (neighborCount == 3) ? 1 : 0;
            end
        end
    end
end

代码使用示例

% 生成一个随机的6×6 0-1测试矩阵
inputMatrix = randi([0 1],6,6);
disp('输入矩阵:');
disp(inputMatrix);

% 调用函数生成更新后的矩阵
outputMatrix = updateBinaryMatrix(inputMatrix);
disp('输出矩阵:');
disp(outputMatrix);

代码说明

  • 输入校验:先检查矩阵尺寸和元素取值,提前拦截非法输入避免运行报错。
  • 邻域计数:通过双层循环遍历8个邻域方向,对矩阵边界外的元素默认视为0(你也可以根据需求改成循环边界或忽略边界元素,只需调整坐标判断逻辑)。
  • 规则逻辑:新矩阵独立初始化,确保更新过程中不会因为覆盖原始值而影响后续元素的计算。如果你的实际规则和我补全的不同,直接修改根据规则更新当前元素值部分的条件判断即可。

内容的提问来源于stack exchange,提问作者Daniel Arocha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:39:08