Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:41   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 一个类的动态数组,在另一个单独的类中?

我正在研究机器人本地化模拟器,并创建了一个名为“ landmark”的类。

最终结果将是一个始终居中并始终面对屏幕顶部的机器人。旋转时,鸟瞰图将围绕机器人旋转。为此,我假设我可以旋转一个类,并且内部的所有元素也可以旋转。

因此,地标类具有属性x,y,标签和半径。这是为了模拟森林中的树木位置。

为了测试所有内容,我需要“森林数据”,并且编写了一个脚本来在100m x 100m的区域中生成100棵树。脚本会自动生成x,y半径可接受范围内的值。生成的数据存储在一个名为tempForest的对象中,并且为100x3。

理想情况下,我想创建一个名为“ landmarks”(复数)的类,其中包含100个地标实例。

如何使用随机生成的数据在一个地标实例中实例化100个地标实例?

理想情况下,我只输入treeBeacons = landmarks();。它将使用x,y,半径数据随机填充100个(用户可定义,在配置文件中设置)实例。

我不确定如何在另一个单独的类“ landmarks”内处理“ Landmark”类的动态数组。

有任何想法吗?



回答:

我将创建一个具有属性“ fixedPositions”,属性“ viewDirection”和从属属性“ apparentPositions”的类“ landmarks”。

如果键入treeBeacons=landmarks; ,您可以让构造函数填写fixedPositions ,这是树的位置列表。然后,您可以将treeBeacons.facing设置为机器人所面对的任何方向,并且可以将相对于机器人的森林作为treeBeacons.apparentPositions 。

根据您的描述,我认为没有必要让树木成为对象。但是,如果您的树确实需要成为单个对象,则可以让地标的构造函数创建对象而不是坐标,然后将其存储在fixedPositions (或trees )中。我只是建议您不要同时使用landmarks和landmark作为不同的变量名。至少像我这样的普通人很难区分两者。

classdef landmarks properties fixedPositions %# positions in a fixed coordinate system. [ x, y, radius ] facing = 0;%# direction in which the robot is facing end properties (Dependent) apparentPositions end methods function obj = landmarks(numberOfTrees) %# set obj.fixedPositions here depending on the number of trees. end function out = get.apparentPositions(obj) %# rotate obj.positions using obj.facing to generate the output end function plotMap(obj,fixedOrApparent) %# plots the map, either using fixed or apparent coordinates (good for testing) end end end

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 02:54


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.