Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在matlab循环中使用pcolor_Matlab_Maptools - Fatal编程技术网

在matlab循环中使用pcolor

在matlab循环中使用pcolor,matlab,maptools,Matlab,Maptools,我有一些坐标为lat、lon和Z的数据点(数百万个数据点)。每个坐标点表示尺寸为0.0005的栅格的中心。 我想用代表Z值的颜色绘制它们。但是,我的数据不是网格数据,它们是分散的数据点。我知道另一个函数“geoshow”也可以制作类似的地图,但用于网格数据。当我使用matlab将分散数据转换为网格数据时,内存不足。所以我使用pcolor实现了这一点。代码如下: clc clear all data = load('data.txt');% This data.txt file is large,

我有一些坐标为lat、lon和Z的数据点(数百万个数据点)。每个坐标点表示尺寸为0.0005的栅格的中心。 我想用代表Z值的颜色绘制它们。但是,我的数据不是网格数据,它们是分散的数据点。我知道另一个函数“geoshow”也可以制作类似的地图,但用于网格数据。当我使用matlab将分散数据转换为网格数据时,内存不足。所以我使用pcolor实现了这一点。代码如下:

clc
clear all
data = load('data.txt');% This data.txt file is large, about 100M and each line with lat, lon and value Z 
X = data(:,1); % Lat
Y = data(:,2); %Lon
Z = data(:,3); % Value Z
grid_dx=0.0005;
grid_dy=0.0005;
xl=X-grid_dx/2;
xr=X+grid_dx/2;
yu=Y+grid_dy/2;
yd=Y-grid_dy/2;
for i1=1:length(x)
xx=[xl(i1),xr(i1);xl(i1),xr(i1)];
yy=[yd(i1),yd(i1);yu(i1),yu(i1)];
zz=repmat(z(i1),2,2);
pcolor(xx,yy,zz)
colormap('jet')
end
对于小数据集,它工作得很好。然而,对于较大的数据集,它将花费太多的时间。 是否有可能在不使用网格的情况下更快地绘制散射数据?任何功能pcolor、geoshow或其他都可以。
谢谢你的帮助

您可以使用
散点
功能以基于z的颜色绘制
(x,y)
点,而无需执行插值

lat = sort(10*rand(100,1));  % sorting is optional, just to give a 
lon = sort(10*rand(100,1));  % gradient in the coloring
z = sort(rand(100,1));

scatter(lat, lon, [] , z, 'fill');
此代码生成


谢谢,我已经试过了。它绘制的地图不是我想要的。我没有授权在这里发布图片。我想要的地图就像这个URL上的第一张地图,但是使用分散的数据。