53 lines
893 B
Matlab
53 lines
893 B
Matlab
% some vectors:
|
|
x = [ -1:0.02:1 ];
|
|
y = x*0.5 + 0.1*randn( size(x) );
|
|
plot( x, y, '.b' );
|
|
hold on
|
|
plot( x(10), y(10), '.r' );
|
|
|
|
% new coordinate system:
|
|
%e1 = [ 3/5 4/5 ];
|
|
%e2 = [ -4/5 3/5 ];
|
|
e1 = [ 3 4 ];
|
|
e2 = [ -4 3 ];
|
|
me1 = sqrt( e1*e1' );
|
|
e1 = e1/me1;
|
|
me2 = sqrt( e2*e2' );
|
|
e2 = e2/me2;
|
|
quiver( 0.0, 0.0 , e1(1), e1(2), 1.0, 'r' )
|
|
quiver( 0.0, 0.0 , e2(1), e2(2), 1.0, 'g' )
|
|
axis( 'equal' )
|
|
|
|
% project [x y] onto e1 and e2:
|
|
|
|
% % the long way:
|
|
% nx = zeros( size( x ) ); % new x coordinate
|
|
% ny = zeros( size( y ) ); % new y coordinates
|
|
% for k=1:length(x)
|
|
% xvec = [ x(k) y(k) ];
|
|
% nx(k) = xvec * e1';
|
|
% ny(k) = xvec * e2';
|
|
% end
|
|
% plot( nx, ny, '.g' );
|
|
|
|
% the short way:
|
|
%nx = [ x' y' ] * e1';
|
|
%nx = [x; y]' * e1';
|
|
% nx = e1 * [ x; y ];
|
|
% ny = e2 * [ x; y ];
|
|
% plot( nx, ny, '.g' );
|
|
|
|
% even shorter:
|
|
n = [e1; e2 ] * [ x; y ];
|
|
plot( n(1,:), n(2,:), '.g' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hold off
|