如何在NetLogo中为矩阵添加行?含2×2转3×2矩阵实操咨询
解决矩阵修改问题:将2×2的orders矩阵扩展为3×2
嘿,刚好能帮到你!你完全可以通过创建同名新矩阵覆盖原有变量的方式实现需求,甚至还有更灵活的方法不用重复写原有数据,我给你两种方案:
方案1:直接覆盖(手动指定所有行)
既然你已经熟悉matrix:from-row-list的用法,只需要在原有的行列表后面加上新增的[10 50]行,重新赋值给orders变量就行,代码如下:
set orders matrix:from-row-list [[0 0] [0 0] [10 50]]
执行后,原来的2×2矩阵就会被新的3×2矩阵完全覆盖,最终结果就是你想要的按行排列的0 0; 0 0; 10 50。
方案2:基于原矩阵追加行(更灵活)
如果原矩阵的数据很多,不想手动重复写所有行,可以用NetLogo的矩阵操作命令matrix:append-row,它会返回一个在原矩阵末尾添加新行后的新矩阵,再把这个新矩阵赋值给orders就完成了更新:
set orders matrix:append-row orders [10 50]
这种方法更适合原矩阵内容复杂或者后续需要动态添加行的场景,不用硬编码所有原有数据。
两种方法都能达到你想要的效果,你可以根据自己的实际场景选择~
内容的提问来源于stack exchange,提问作者ThomasC
相关产品推荐
相关产品推荐

