基于matlab模拟根系各部分(主根、各级侧根)的名称、生长速率、各区域长度、分支数量、半径、夹角、颜色、向性以及轴向分辨率

基于matlab模拟根系各部分(主根、各级侧根)的名称、生长速率、各区域长度、分支数量、半径、夹角、颜色、向性以及轴向分辨率 ✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 往期回顾关注个人主页Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条格物致知,完整Matlab代码获取及仿真咨询内容私信。 内容介绍一、文章逻辑梳理Anagallis 根系模拟参数定义依据 L. Kutschera 1960 年的研究对 Anagallis 根系各部分主根、各级侧根的名称、生长速率、各区域长度、分支数量、半径、夹角、颜色、向性以及轴向分辨率等参数进行详细设定。模拟过程通过completeParameters函数完善参数设定模拟步数N和总时间simtime利用createRootSystem生成初始根系字符串通过循环applyRules函数模拟不同时间步的根系生长同时计算并记录各时间步根系的总长度。结果展示绘制根系长度随时间变化的关系图以及最终的根系图直观呈现模拟结果。玉米根系模拟单子叶植物参数设定对玉米根系不同类型水平根、侧根、基根的根进行参数设置包括初始生长速率、半径、插入角度、各区域长度、侧根数量等可编辑参数以及根类型名称、颜色、空间分辨率、最大根系寿命、生长函数类型、后继侧根等额外参数。同时设定单子叶植物数据如种植深度、基根和茎生根相关的出现时间、间隔时间等参数。土壤属性与模拟设置定义全局矩形网格设置土壤属性C通过conc_sphere函数确定异质性位置和范围确定模拟类型包括根的向性、伸长缩放、分支概率缩放、插入角缩放并根据不同模拟类型设置相应参数。模拟运行完善参数设置初始化根箱通过createMonocotRS创建初始字符串运行多次模拟每次模拟通过applyRules函数生成代表根系的 L 系统字符串。结果可视化与评估可视化最后一次模拟运行结果绘制根系图并添加土壤异质性和控制体积的可视化。通过getDensity函数计算并统计不同体积内的根长度和表面积输出蓝色异质性和红色控制体积内的平均根长度及标准差最后保存本地工作区。二、内容呈现在植物根系研究领域深入了解不同植物根系的生长特性至关重要。本文以 Anagallis 和玉米为例通过详细的参数设定与模拟为我们揭示了植物根系的生长奥秘。对于 Anagallis 根系从其主根开始就像搭建一座大厦先确定基石一样明确了主根的各项关键参数。主根作为根系的重要起始部分其生长速率、基部和顶端区域长度等参数如同大厦基石的尺寸和质量决定了整个根系的初始架构。而各级侧根的参数设定则如同在基石上逐步搭建不同规格的楼层共同构成了复杂且有序的根系结构。通过一系列函数模拟其生长过程我们仿佛能 “观看” 到 Anagallis 根系在虚拟环境中一点点生长最终以图表的形式将根系长度的变化和最终形态呈现出来如同为我们展示了这座 “根系大厦” 的成长历程。玉米作为单子叶植物的代表其根系模拟更为复杂。不同类型的根水平根、侧根和基根各自具有独特的参数这些参数不仅决定了根自身的生长特点还相互关联共同塑造了玉米根系的整体形态。土壤属性的设定为根系生长提供了 “土壤环境”就像为根系生长搭建了一个特定的舞台。而各种模拟类型的设置则如同为这个舞台添加了不同的 “剧情设定”影响着根系在舞台上的 “生长表演”。多次模拟运行就像进行了多次实验每一次都记录下根系的生长状态。最后通过可视化和评估我们不仅能直观看到玉米根系在土壤中的分布情况还能通过数据了解到不同区域内根系的生长量为研究玉米根系与土壤环境的相互作用提供了丰富的信息。综上所述本文通过对 Anagallis 和玉米根系的模拟研究为植物根系领域的研究提供了详细的模型和方法有助于进一步深入理解植物根系的生长机制以及与环境的相互关系。⛳️ 运行结果 部分代码function p completeParameters(p,df)% completeParameters: adds missing default root system parameters% 添加缺失的默认根系统参数% Checks all parameters and copies it to global parameters. Each root of% type i is described by the following parameters:% 检查所有参数并将其复制到全局参数。类型“i”的每个根由以下参数描述% p{i}.lb [mean, std] length of the basal zone (default [0,0])%基础区长度默认值为[0,0]% p{i}.la [mean, std] length of the apical zone (default [10,0])%顶端区长度默认值为[10,0]% p{i}.ln [mean, std] inter-branch distance (default [0,0])%分枝间距默认值为[0,0]% p{i}.nob [mean, std] number of branches (default [0,0])%分支数默认值为[0,0]% p{i}.r [mean, std] initial growth speed (cm/day) (default [1,0])%初始生长速度cm/day默认值为[1,0]% p{i}.a [mean, std] root radius (constant along axis)% (default [1e-2,0])%根半径沿轴线恒定默认值为[1e-2,0]% p{i}.color [r,g,b] color of this root type% (default [150/255,150/255,50/255])%此根类型的颜色默认值为[150/255,150/255,50/255]% p{i}.tropism [t,N,s] t is the type (0Plagio-, 1Gravi-, 2Exo-,% 3Chemotropism), N is the maximal angular% deviation in root heading (default[1 1 pi/20])%t为类型0Plagio-, 1Gravi-, 2Exo-, 3Chemotropism%N为根朝向的最大角度偏差默认值为[1 1 pi/20]% p{i}.dx axial resolution (default 0.1)%轴向分辨率默认值为0.1% p{i}.successor [I,P] I indices of successive types, P probability% (default [])%后继类型的I指数P概率默认值为[]% p{i}.theta [mean, std] insertion angle (default [70/180*pi,0])%插入角度默认值为[70/180*pi,0]% p{i}.rlt [mean, std] root life time (default [inf,0])%根寿命默认值为[inf,0]% p{i}.gf type of the growth function (default 1)% 生长函数类型默认值为1% % p{i}.name name of the root type (default unknown)% 根类型的名称默认值为unknown% % p{i}.ief impede elongation function (default (x) 1)% 阻碍伸长函数默认值为(x) 1% % p{i}.ibf impede branching function (default (x) 1)% %阻碍分支函数默认值为(x) 1% % p{i}.irlf impede root life (default (x) 1)% %阻碍根寿命默认值为(x) 1% % p{i}.type index within list% 列表中的索引。%% Parameters:% p a list of parameter sets (for each root type)% (df) signed distance function of container geometry 容器几何的有符号距离函数% (default (x) x(3))%% p parameter set including default values%% See also: applyRules%% Copyright 2012-2014 Daniel Leitner. See license.txt for details.%​global parameters;global geometry;​​% nargin函数输入参数数目if nargin2% isempty确定数组是否为空 set - 设置图形对象属性if isempty(geometry) % if not already setgeometry (x) x(:,3);endelsegeometry df;end​%% default parameters%defaultoptionsstruct(lb,0,la,10,ln,0,nob,0,r,1,a,0.01,...color,[150/255,150/255,50/255],tropism,[1 1 pi/20], dx, 0.1, ...successor,[],theta,70/180*pi,rlt,inf,gf,1,name,unknown,...sef,(x) 1,sbpf,(x) 1,saf,(x) 1,type, 0);​for i 1 : length(p)%% add missing parameters to all root types% fieldnames - 结构体的字段名称或者 Java 或 Microsoft COM 对象的公共字段tags fieldnames(defaultoptions);for j1:length(tags)% isfield确定输入是否为结构体数组字段if(~isfield(p{i},tags{j}))p{i}.(tags{j})defaultoptions.(tags{j}); % add defaultend% isreal - 确定数组是否使用复数存储if isreal(p{i}.(tags{j})) length(p{i}.(tags{j}))1 ...~strcmp(tags{j},successor);p{i}.(tags{j})[p{i}.(tags{j}),0]; % add zero stdendend% check tropism parameter length 检查向性参数长度if length(p{i}.tropism)~3warning(completeParameters: Wrong number of tropism arguments);end​% check successorsif ~isempty(p{i}.successor)if size(p{i}.successor,2)1 % if only one numberp{i}.successor(1,2)1; % add probability 1endif sum(p{i}.successor(:,2))1warning(completeParameters: Successors probabilities 1);endelseif p{i}.nob0p{i}.successor(1,1)1; % set a successorp{i}.successor(1,2)0; % with probability 0endend% warn about unknown options 对未知选项发出警告if(length(tags)~length(fieldnames(p{i})))warning(completeParameters: Unknown options found);endp{i}.type i; % add index of type 添加类型的索引end​parametersp; 参考文献往期回顾扫扫下方二维码