I have data in three column (x,y,z)
I want to pick the values of z in each grid ...
For exmaple, in fiure, the values of x are plotted coressponding to x,y. Then with a diffrenec of 1 we grided the plot.
I want to calculate the data points placed in each grid.

 채택된 답변

KSSV
KSSV 2020년 9월 11일
편집: KSSV 2020년 9월 12일

0 개 추천

I have edited the code for your given points so that you can get the points for each grid.
x = -130.7:0.1:-129.7 ;
y = 45.6:0.1:46.3 ;
n = length(x) ;
m = length(y) ;
[X,Y] = meshgrid(x,y) ;
data = importdata("data.txt") ;
x = data(:,1) ; y = data(:,2) ; z = data(:,3) ;
% plot grid
plot(X,Y,'r',X',Y','r')
hold on
for i = 1:m-1
for j = 1:n-1
% Get the points of each grid
P = [X(i,j) Y(i,j) ;
X(i,j+1) Y(i,j+1) ;
X(i+1,j+1) Y(i+1,j+1) ;
X(i+1,j) Y(i+1,j)] ;
idx = inpolygon(x,y,P(:,1),P(:,2)) ;
iwant = [x(idx) y(idx) z(idx)] ;
plot(x(idx),y(idx),'.')
drawnow
end
end

댓글 수: 11

aa
aa 2020년 9월 12일
Thank you very much . We are very close to the required result. But, I want to place a third parameter in x-y grid. How can i do so ...
KSSV
KSSV 2020년 9월 12일
You need not to worry about the third parameter, you can use the indices obtained to print the third parameter. I have edited the answer to include the third parameter.
aa
aa 2020년 9월 12일
Thank you let me try this in my data set. In the next phase, I want to get an output as the point in each grid point.
KSSV
KSSV 2020년 9월 12일
You can also use inequalities to get the points lying inside the grid if you are not okay with inpolygon.
m = 4;
n = 4 ;
x = linspace(0,1,m) ;
y = linspace(0,1,n) ;
[X,Y] = meshgrid(x,y) ;
% Pick some random points
x = rand(100,1) ;
y = rand(100,1) ;
z = rand(100,1) ;
% Get points lying inside the grid/ square
P = [0 0 ;0.3333 0 ; 0.3333 0.3333 ;0. 0.3333] ;
idx = inpolygon(x,y,P(:,1),P(:,2)) ;
iwant = [x(idx) y(idx) z(idx)] ;
% Use ineqialities
idx1 = x >= min(P(:,1)) & x <= max(P(:,1)) ;
idy1 = y >= min(P(:,2)) & y <= max(P(:,2)) ;
idxy = idx1 & idy1 ;
% plot grid
plot(X,Y,'r',X',Y','r')
hold on
plot(x,y,'ok')
plot(x(idxy),y(idxy),'+b')
aa
aa 2020년 9월 12일
Thanks let me share with you the data set that i want to process ...
The grid dimensions are
x = linspace(-130.7,0.1,-129.7 ) ;
y = linspace(45.6,0.1,46.3) ;
Now we have to place the coresspodning enteries of z in the grid of x-y.
One the values placed in each grid after that i have to apply further analysis for teh enteries of each grid point
KSSV
KSSV 2020년 9월 12일
x = -130.7:0.1:-129.7 ;
y = 45.6:0.1:46.3 ;
[X,Y] = meshgrid(x,y) ;
And you can proceed as given in the answer above.
aa
aa 2020년 9월 12일
I just apply your code and get this
KSSV
KSSV 2020년 9월 12일
Do you think the points given in P i.e polygon/ rectangle form a closed region? The code is correct it should work if you give all the details correct.
aa
aa 2020년 9월 12일
Yes, the code is working perfectly, but one last thing is the calculation of "iwant" for each grid point. In case of manual calculation, I change the points of p for each grid.
KSSV
KSSV 2020년 9월 12일
Edited the answer.
aa
aa 2020년 9월 12일
Thank you this is really amazing and work perfectly, But if i want to get an output file of data points in each grid , how can this be possible.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Simulink에 대해 자세히 알아보기

태그

질문:

aa
2020년 9월 11일

댓글:

aa
2020년 9월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by