我写了一个基本的类定义如下:单元阵列对象不打印所有字段
classdef player
properties
team
name
rating
ranking
end
methods
end
end
我得到的球员对象的单元阵列,叫allPlayers
,与每一个领域,但排名已设置。然后我打电话给它下面的功能:
function setRankings(players)
for i = 1 : length(players)
players{i}.ranking = i;
end
end
在这一点上,应该设置每个球员对象的所有领域。我把下面的函数来显示每个字段:
function displayPlayers(players)
for i = 1 : length(players)
current = players{i};
disp(['Name: ', current.name]);
disp(['Team: ', current.team]);
disp(['Rating: ', current.rating]);
disp(['Ranking: ', current.ranking]);
end
end
不幸的是,每个玩家打印出如下(只是一个例子):
'Name: ' 'Shleifer,Sam'
Team: Yale
'Rating: ' '5.050000'
Ranking:
所以它看起来像排名领域实际上并没有得到由setRankings
设置。
这是为什么?
排名没有被设置,因为'player'是一个值类,而不是句柄,并且你没有从函数返回修改后的对象。不同的简单解释是[可以在这里](http://stackoverflow.com/questions/27077642/matlab-classes-getter-and-setters/27079193#27079193)。 – TroyHaskin