Extracting data from a matrix in slanted rectangular form

i have data consisting of x, y and z . I want to extract data from the above matrix in a slanted rectangular shape( If I joined the vertex values of rectangles it will be slanted and there are 4 x values and 4 y values ). The image shows the contour of the data I want to extract the data in the rectangle as shown in the figure (Thick bordered).
thank you

 Accepted Answer

clear all
[X,Y,Z] = peaks(100) ; % data
% the slant rectangle I picked
rect = [
-1.5000 0.1399
-0.2005 1.6968
1.0300 -0.1224
-0.6014 -1.2770
-1.5000 0.1399
] ;
figure ; surf(X,Y,Z) ; view(2) ; hold on ; plot(rect(:,1),rect(:,2),'b') ;
% get the indices of piints which are inside the rectangle
id = inpolygon(X(:),Y(:),rect(:,1),rect(:,2));
% initilaize the required matrices
Xi = NaN(size(X)) ;
Yi = Xi ;
Zi = Xi ;
% fill the values inside rectangle
Xi(id) = X(id) ;
Yi(id) = Y(id) ;
Zi(id) = Z(id) ;
figure ;surf(Xi,Yi,Zi)

4 Comments

Thanks, KSSV . I got it One more question not exactly related to this how can I convert back my matrix to xyz format, the value of z is unique for particular x and y the figure shows the pattern of my data
I need it to convert back to x,y,z format after some processing
If X is a matrix, you can convert it to array x by X(:).
From this inclined matrix (as rectangle is inclined) is getting. How to make a straight matrix from this?

Sign in to comment.

More Answers (0)

Categories

Find more on Graphics Object Properties in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!