对于我的工作,我必须在Matlab中设置一个项目,这不是我选择的语言,我对效率有一些疑问。
我目前正在处理具有多个属性的点集合。而不是将所有这些放在相同长度的单独数组中,我更倾向于使用Matlab的用户定义类来创建Point对象的单个数组。例如:
% Point.m
classmethod Point < handle
properties
x, y, prop1, prop2
end
end
% script.m
... % define x(100), y(100), prop1(100), prop2(100)
points(100) = Point; % this seems to be the way to allocate an object vector
for i = 1:100
points(i).x = x(i); % copy values into object
points(i).y = y(i);
points(i).prop1 = prop1(i);
points(i).prop2 = prop2(i);
end
我更喜欢上述的原因是审美(对象应该是对象)和实用,因为它允许我轻松创建点的子集,而不必索引几个不同的数组。
然而,我想知道这是否是最有效的做事方式,因为这些点数可能会增加到数千或数万个数量级。我的主要问题是:
或者说更通用的事情:组织我的观点的最佳方式是什么?
期待您的建议!
答案 0 :(得分:9)
没有按顺序回答你的问题,但这里有一些有用的信息: