Effacer les filtres
Effacer les filtres

Rotate matrix with interp2

4 vues (au cours des 30 derniers jours)
Sung YunSing
Sung YunSing le 11 Nov 2019
Commenté : Sung YunSing le 14 Nov 2019
I am trying to rotate a matrix to a specific direction(vector) by using interp2.
I input Matrix and a vector.
Matrix will be the object I want to rotate(2-D matrix of nxm).
The direction which i want to rotate to will be shown as a (unit) vector.
The vector will need to be a 2x2 matrix.
The first column will be the vector of direction and the second column will be the orthogonal vector of the first.
The logic of what I want to do is like doing a rotation matrix on Cartesian coordinate system, but the sin and cos will be replaced as a unit vector.
But what I get is just a matrix full of NaN.
function [Mq]=Rotation(Matrix,vector)
ly=length(Matrix(:,1));
lx=length(Matrix(1,:));
x=1:lx;
y=1:ly;
[X,Y]=meshgrid(x,y);
Xq=X*vector(1,1)-Y*vector(2,1);
Yq=X*vector(1,2)+Y*vector(2,2);
Mq=interp2(X,Y,Matrix,Xq,Yq);
end
  2 commentaires
darova
darova le 11 Nov 2019
Maybe you didn't define ph?
darova
darova le 12 Nov 2019
I think you trying to extrapolate values
123.png

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 12 Nov 2019
This might be what you want.
[X,Y]=meshgrid(x-mean(x),y-mean(y));
  1 commentaire
Sung YunSing
Sung YunSing le 14 Nov 2019
thanks a lot ~!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by