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

 采纳的回答

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 个评论

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?

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Graphics Object Properties 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by