Why aren't the outcomes of class methods being applied to global variables:
1 次查看(过去 30 天)
显示 更早的评论
I'm not sure why the outcomes of class methods are not being applied to global variables:
When I enter
clear(Forest_Road,shoot)
in the main script I do not receive any errors but I don't have any trees being removed from my "forest" here grouped as collection of shoot's in a non scaler array, I think this is by design (seperating class varaibles from global variables). I tried making the input argument a global variable in the class definition but it didn't affect the outcome, what am I missing?
classdef Road
% Creation of the class road
properties
x;
y;
c;
end
methods
% Constructer
function obj = Road(x,y,c)
% Construct an instance of road class
% Assign input properties
obj.x = x;
obj.y = y;
obj.c = c;
end
function chop_trees = clear(obj,shoot)
i=1;
j=1;
while j~=80
for j=1:80
dist = hypot([shoot(i).x] - obj.x(j), [shoot(i).y] - [obj.y(j) + obj.c]);
if any(dist < 2);
global shoot
shoot(i)=[];
end
end
i=i+1;
end
end
end
end
0 个评论
回答(1 个)
Steven Lord
2020-5-2
Your class is a value class rather than a handle class. See the description of the difference between those two types of object here.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Construct and Work with Object Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!