Я хотел бы создать класс, который хранит и может изменять вектор.Выглядит примерно так:
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, фактически не создавая его копию в памяти.Я хочу, чтобы DCM был методом внутри rotate, а не MyVec.И я хотел бы иметь возможность безопасно копировать мою переменную.
Надеюсь, я четко объяснил.Спасибо за ваше время.