当前位置: 首页 > news >正文

CellularAutomata元胞向量机-9-生命游戏MATLAB代码分享

主程序:

%%Conway's life with GUI

clf % 清除图形

clc, clear

%===========================

%build the GUI

%define the plot button

plotbutton=uicontrol('style','pushbutton',...

'string','Run', ...

'fontsize',12, ...

'position',[100,400,50,20], ...

'callback', 'run=1;');

%define the stop button

erasebutton=uicontrol('style','pushbutton',...

'string','Stop', ...

'fontsize',12, ...

'position',[200,400,50,20], ...

'callback','freeze=1;');

%define the Quit button

quitbutton=uicontrol('style','pushbutton',...

'string','Quit', ...

'fontsize',12, ...

'position',[300,400,50,20], ...

'callback','stop=1;close;');

number = uicontrol('style','text', ...

'string','1', ...

'fontsize',12, ...

'position',[20,400,50,20]);

%==============================

%CA setup

n=128;

%initialize the arrays

z = zeros(n,n);

cells = z;

sum = z;

%set a few cells to one

cells(n/2,.25*n:.75*n) = 1;

cells(.25*n:.75*n,n/2) = 1;

%cells(.5*n-1,.5*n-1)=1;

%cells(.5*n-2,.5*n-2)=1;

%cells(.5*n-3,.5*n-3)=1;

cells = (rand(n,n))<.5 ;

%how long for each case to stability or simple oscillators

%build an image and display it

imh = image(cat(3,cells,z,z));

set(imh, 'erasemode', 'none')

axis equal

axis tight

%index definition for cell update

x = 2:n-1;

y = 2:n-1;

%Main event loop

stop= 0; %wait for a quit button push

run = 0; %wait for a draw

freeze = 0; %wait for a freeze

while (stop==0)

if (run==1)

%nearest neighbor sum

sum(x,y) = cells(x,y-1) + cells(x,y+1) + ...

cells(x-1, y) + cells(x+1,y) + ...

cells(x-1,y-1) + cells(x-1,y+1) + ...

cells(3:n,y-1) + cells(x+1,y+1);

% The CA rule

cells = (sum==3) | (sum==2 & cells);

%draw the new image

set(imh, 'cdata', cat(3,cells,z,z) )

%update the step number diaplay

stepnumber = 1 + str2num(get(number,'string'));

set(number,'string',num2str(stepnumber))

end

if (freeze==1)

run = 0;

freeze = 0;

end

drawnow %need this in the loop for controls to work

end

子程序:game_of_life.m

%% 生命游戏GUI

clc

clear all

%构造三个按钮

plotbutton=uicontrol('style','pushbutton',...

'string','Run', ...

'fontsize',12, ...

'position',[100,400,50,20], ...

'callback', 'run=1;');

erasebutton=uicontrol('style','pushbutton',...

'string','Stop', ...

'fontsize',12, ...

'position',[200,400,50,20], ...

'callback','freeze=1;');

quitbutton=uicontrol('style','pushbutton',...

'string','Quit', ...

'fontsize',12, ...

'position',[300,400,50,20], ...

'callback','stop=1;close;');

number = uicontrol('style','text', ...

'string','1', ...

'fontsize',12, ...

'position',[20,400,50,20]);

%元胞个数

n=128;

z = zeros(n,n);

cells = z;

sum = z;

%初始化一部分元胞有生命

cells(n/2,.25*n:.75*n) = 1;

cells(.25*n:.75*n,n/2) = 1;

cells = (rand(n,n))<.5 ;

%创建图片

imh = image(cat(3,cells,z,z));

set(imh, 'erasemode', 'none')

axis equal

axis tight

x = 2:n-1;

y = 2:n-1;

stop= 0;

run = 0;

freeze = 0;

while (stop==0)

if (run==1)

%周围活着的生命总数

sum(x,y) = cells(x,y-1) + cells(x,y+1) + ...

cells(x-1, y) + cells(x+1,y) + ...

cells(x-1,y-1) + cells(x-1,y+1) + ...

cells(3:n,y-1) + cells(x+1,y+1);

%元胞规则

cells = (sum==3) | (sum==2 & cells);

%更新图片

set(imh, 'cdata', cat(3,cells,z,z) )

%更新迭代了几步

stepnumber = 1 + str2num(get(number,'string'));

set(number,'string',num2str(stepnumber))

end

if (freeze==1)

run = 0;

freeze = 0;

end

pause(0.02)

end

相关文章:

CellularAutomata元胞向量机-9-生命游戏MATLAB代码分享

主程序&#xff1a;%%Conways life with GUI clf % 清除图形clc, clear% %build the GUI %define the plot button plotbuttonuicontrol(style,pushbutton,... string,Run, ... fontsize,12, ... position,[100,400,50,20], ... callback, run1;); %define the stop button era…...

基于Java+Swing+mysql图书管理系统

基于JavaSwingmysql图书管理系统一、系统介绍二、功能展示1.用户登陆、注册2.类别管理--管理员3.图书管理--管理员4.用户管理--管理员5.图书借还情况查看--管理员7.用户主页8.办理还书--用户9.办理还书三、数据库四、其它系统五、获取源码一、系统介绍 该系统实现了 用户: 图书…...

高通IPQ支持串口转RS485

IPQ60xx支持串口转RS485 1. IPQ6018支持串口转RS4851.1 功能需求1.2 原理1.3 实现方法1.4 如何使用RS485?1.5 修改底层串口驱动来进行控制收发状态,上层应用可以直接当成串口来进行操作1. IPQ6018支持串口转RS485 1.1 功能需求 IPQ60xx/IPQ501x/IPQ80xx项目中使用RS485, 需…...

力扣-组合两个表

大家好&#xff0c;我是空空star&#xff0c;本篇带你了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;175. 组合两个表二、解题1.left join提交SQL运行结果2.right join提交SQL运行结果总结前言 一、题目&#xff1a;175. 组合两个表 表: Person ----------…...

Linux权限概念

目录 Linux权限的概念 什么是权限 如何去操作权限 设置文件所属角色 设置文件属性 umask 粘滞位 Linux权限的概念 首先我们要了解到&#xff0c;在linux下有两种用户&#xff1a;超级用户(root)和普通用户。超级用户的命令提示符是“#”&#xff0c;普通用户的命令提示…...

备战金三银四,这些无数测试前辈们踩过的坑,在面试中,一定要注意这些

你觉得软件测试师这个职位怎么样&#xff1f;大多数人可能会给出答案:“测试&#xff1f;啊&#xff0c;没有技术含量。无非是看需求、业务手册、设计文档&#xff0c;然后点击功能是否实现。问题是测试中的部署和安装是否存在兼容性问题。” 是的&#xff0c;不可否认&#x…...

注解(加与不加的区别)

起因&#xff1a; 在看到这个文章时&#xff0c;对于注解的作用半知半解&#xff0c;由此&#xff0c;写了个例子&#xff0c;验证注解作用 以Override举例 新建一个父类&#xff0c;取名为textone(类名首字母应该大写) 写一个方法&#xff1a; 再新建一个类&#xff0c;继承…...

小众免费的短视频素材库

推荐5个小众但好用的视频素材网站&#xff0c;免费可商用&#xff0c;视频剪辑、自媒体必备~ 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky ​ 菜鸟图库网素材非常丰富&#xff0c;网站主要还是以设计素材为主&#xff0c;高清视频素材也很多&#xff0c;像风…...

docker-compose安装SonarQube

前言SonarQube 是一个开源的代码分析平台, 用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码&#xff0c; 潜在bug&#xff0c; 代码规范&#xff0c;安全性漏洞等问题&#xff0c; 并通过SonarQube web UI展示出来。一、docker-compose配置#v…...

《数字经济全景白皮书》金融篇:五十弦翻塞外声,金融热点领域如何实现增长?

易观分析&#xff1a;《数字经济全景白皮书》浓缩了易观分析对于数字经济各行业经验和数据的积累&#xff0c;并结合数字时代企业的实际业务和未来面临的挑战&#xff0c;以及数字技术的创新突破等因素&#xff0c;最终从数字经济发展大势以及各领域案例入手&#xff0c;帮助企…...

微服务门神-Gateway与Sentinel的集成

目录 引言 概述 集成Sentinel 限流维度 网关集成 Route维度 API分组 精准匹配 前缀匹配 正则匹配 自定义限流返回格式 转视频版 引言 书接上篇&#xff1a;微服务门神-Gateway过滤器Filter&#xff0c;讲完了解Gateway过滤器之后&#xff0c;接下来看下Gateway与…...

查找的基本概念

查找表是由同一类型的数据元素&#xff08;或记录&#xff09;构成的集合。根据给定的某个值&#xff0c;在查找表中确定一个其关键字等于给定值的数据元素或记录。关键字&#xff1a;用来标识一个数据元素&#xff08;或记录&#xff09;的某个数据项的值。查找算法的评价指标…...

安装v-router出错

一、场景 1、安装v-router npm i --save vue-router 2、报错&#xff1a; npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: sph20.1.0 npm ERR! Found: vue2.7.14 npm ERR! node_modules/vue npm ERR! v…...

2023美赛C题:预测 Wordle 结果

以下内容全部来自本人人工翻译&#xff0c;仅供参考。 文章目录背景要求附件数据文件条目描述纽约时报网站上发布的Wordle指导方针词汇表参考文献服务背景 Wordle是目前纽约时报每天提供的一种受欢迎的谜题。玩家试图通过在六次或更少的机会内猜测一个五个字母的单词来解决谜题…...

minio public桶禁止在直接访问桶位置时列出所有文件url

minio的public桶因为没有限制&#xff0c;所以在直接访问到桶地址的时候会列出桶内所有文件的url&#xff0c;这样很不安全&#xff0c;如何禁止这个功能&#xff0c;可以使用三种方法 1、如果是新版的可以直接设置桶的Access Policy为自定义就好 编辑custom的Policy&#xff…...

Python 元组简介

Python 的元组与列表类似&#xff0c;不同之处在于元组的元素不能修改。元组使用小括号&#xff0c;列表使用方括号。元组创建很简单&#xff0c;只需要在括号中添加元素&#xff0c;并使用逗号隔开即可。如下实例&#xff1a;实例(Python 2.0)tup1 (physics, chemistry, 1997…...

python gui构造openai api可视化页面

背景&#xff1a;最近chatgpt很火&#xff0c;前几天也想注册体验一下&#xff0c;一顿操作之后&#xff0c;卡在该国家不支持。最后发现自己的代理开在香港&#xff0c;改在漂亮国就行了。虽然有chatgpt可以用&#xff0c;但是小平是自己封装了一个&#xff0c;我不能输。正好…...

服务网格领域的百花齐放,是否存在一个更优解?

作者 lingsamuel&#xff0c;API7.ai 云原生技术专家&#xff0c;Apache APISIX Committer。作者 林志煌&#xff0c;API7.ai 技术工程师&#xff0c;Apache APISIX contributor。 服务网格是一种技术架构&#xff0c;它用于管理微服务系统中各个服务之间的通信&#xff0c;旨…...

Zynq 裸机 PS + PL 双网口实现之 lwip 库文件修改

基于 xilinx vivado 2017.4 库文件 lwip141_v2_0 的修改&#xff1a; 添加对 PHY 芯片 ksz9031 的支持&#xff1b; 添加 SDK 中 LWIP 参数设置对话框 emio_options 选项&#xff1b; 添加 XPAR_GMII2RGMIICON_0N_ETH0_ADDR 和 XPAR_GMII2RGMIICON_0N_ETH1_ADDR 宏配置&#…...

金三银四丨黑蛋老师带你剖析-CTF岗

作者丨黑蛋二进制是个庞大的方向&#xff0c;对应着许许多多方向的岗位&#xff0c;除了之前说过的逆向岗位&#xff0c;漏洞岗位&#xff0c;病毒岗位&#xff0c;还有专门打CTF的岗位&#xff0c;CTF是网络安全领域的一种比赛。普遍来讲&#xff0c;大学生学习网络安全都会参…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界&#xff1a;MCP协议与服务器的工作原理 MCP&#xff08;Model Context Protocol&#xff09;是一种创新的通信协议&#xff0c;旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天&#xff0c;MCP正成为连接AI与现实世界的重要桥梁。…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...