How to overlap two grids (matrices) created with meshgrid
Afficher commentaires plus anciens
I've created two separate matrices using meshgrid:
clear all; clc;
dx = 2;
dy = 2;
bdyx_A = 0:dx:50;
bdyy_A = 0:dy:50;
bdyx_B = 20:dx:30;
bdyy_B = 20:dx:30;
[X_A,Y_A] = meshgrid(bdyx_A,bdyy_A);
[X_B,Y_B] = meshgrid(bdyx_B,bdyy_B);
% Calculate some parameter as a function of your x and y
Z_A = sqrt(X_A.^2 + Y_A.^2);
Z_B = 3.*sqrt(X_B.^2 + Y_B.^2);
% Next, reshape all of our matrices into vectors:
G_A = [reshape(X_A,size(X_A,1)*size(X_A,2),1)...
reshape(Y_A,size(Y_A,1)*size(Y_A,2),1)...
reshape(Z_A,size(Z_A,1)*size(Z_A,2),1)]
G_B = [reshape(X_B,size(X_B,1)*size(X_B,2),1)...
reshape(Y_B,size(Y_B,1)*size(Y_B,2),1)...
reshape(Z_B,size(Z_B,1)*size(Z_B,2),1)]
figure; hold all;
scatter(G_A(:,1), G_A(:,2), 100, G_A(:,3),'s', 'filled');
scatter(G_B(:,1), G_B(:,2), 100, G_B(:,3),'s', 'filled'); colorbar;
Therefore, (assuming the dx and dy and end points are lined up correctly) we can see how the coordinates of "B" are a subset of the coordinates of "A". I would like to edit the G_B matrix so that it includes all of the G_A coordinates, but has NaN values in the coordinates where B's data doesn't originally exist.
I would be happy to elaborate or restate my problem if it is unclear.
Thank you in advance!
Réponse acceptée
Plus de réponses (1)
Walter Roberson
le 20 Jan 2014
Quick cheat: interp2() without extrapolation.
If the grids are exactly aligned then you could be much more efficient: create the NaN matrix, find() the index of min(bdyx_B) in bdyx_A, find the index of max(bdyx_B) in bdyx_A, and copy the smaller data into that range of indices
P = nan(size(G_B));
P(11:16, 11:16) = G_A;
Catégories
En savoir plus sur Mathematics dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!