Draw this type of figure from given data.the data contains lat long disp(north,east,down) and other quantities but i need figure only for the displacement simillar to the attached figure

조회 수: 2 (최근 30일)
  댓글 수: 3
TAPAS
TAPAS 2020년 2월 19일
Can you just reduce my data to half that means delete the rows with value 30.06:.12:33 in first column and 102.06:.16:106 in the second column.

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

채택된 답변

darova
darova 2020년 2월 19일
Here is what i tried. I didn't use disp_down, only east and north
A = xlsread('coseis.xlsx');
x = A(:,1);
y = A(:,2);
u = A(:,3);
v = A(:,4);
X = reshape(x,[51 51]);
Y = reshape(y,[51 51]);
U = reshape(u,[51 51]);
V = reshape(v,[51 51]);
quiver(X,Y,U,V,5,'r')
xs = linspace(min(x),max(x),10);
ys = xs*0;
streamline(X',Y',U',V',[xs xs],[ys+102 ys+106])
  댓글 수: 11
darova
darova 2020년 2월 24일
I used griddata to reduce/interpolate data
You previously had 51x51 grid. I changed it to 20x20
Use N number to change density of grid
A = xlsread('coseis.xlsx');
x = A(:,1);
y = A(:,2);
u = A(:,3);
v = A(:,4);
N = 20; % number of points in each direction you want
x1 = linspace(min(x),max(x),N);
y1 = linspace(min(y),max(y),N);
[X,Y] = meshgrid(x1,y1); % new mesh for X,Y (reduced)
U = griddata(x,y,u,X,Y);
V = griddata(x,y,v,X,Y);
% U = reshape(u,[51 51]);
% V = reshape(v,[51 51]);
quiver(X,Y,U,V,3,'r')
xs = linspace(min(x),max(x),10);
ys = xs*0;
streamline(X,Y,U,V,[xs xs],[ys+102 ys+106])

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

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Earthquake Engineering에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by