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

 Akzeptierte Antwort

KSSV
KSSV am 8 Feb. 2017
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 Kommentare

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?

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graphics Object Properties finden Sie in Hilfe-Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by