【发布时间】:2019-05-30 17:58:39
【问题描述】:
我想创建一个存储并且能够修改向量的类。看起来像这样:
classdef vect3d
properties
vec
rotate
end
methods
function obj = vec3d(a,b,c)
vec = [a,b,c];
rotate = rot(obj) ;
end
end
end
我还有一个名为 rot 的类;它具有旋转矢量的功能。我想做的是:
MyVec = vec3d([1;2;3]);
MyVec2 = MyVec;
% Define a Directional cosine matrix to rotate the vector
MyDCM = ... ;
MyVec.rotate.byDCM(MyDCM) ;
% MyVec should now contain the rotated vector
% MyVec2 should remain as the original vector
如果我使用句柄类而不是值类,我可以进行这种操作;但是,如果我设置另一个等于 MyVec 的变量,它们就会链接(都指向同一个对象),这是我想要避免的。
我想将指向我的变量的指针传递给 rot 类,以便我可以在 rot 类的函数中操作它。
简而言之: 我希望能够使用
MyVec.rotate.byDCM( MyDCM)
修改 MyVec,而不是在内存中实际创建它的副本。我希望 byDCM 成为旋转中的方法,而不是 MyVec 的方法。而且我希望能够安全地深度复制我的变量。
我希望我清楚地解释了自己。 感谢您的时间。
【问题讨论】: