1、MATLAB绘制三维图的代表函数
1.1、三维曲线
1.2、三维曲面
2、不太正确的画法
- 原因:每条波形之间没有关系,但是因为插值的原因,每条波形相互影响,呈现的是曲面的形状
- 两个图都是三维图,只不过后面的一个图是从上往下看
2.1、正常视角三维图
clc,clear,clf
filename = 'C:\Users\xxk\Desktop\卫星测高\DAHITO--青海湖数据\matlab处理示例数据\JA2_GPS_2PdP006_240_20080908_230802_20080909_000414.nc';
lat = ncread(filename,'lat');
lat_20hz = ncread(filename,'lat_20hz');
lat_index = find(lat >= 22 & lat <= 25);
wv_all = ncread(filename,'waveforms_20hz_ku');
cnt = 1;
for i = min(lat_index) : max(lat_index)
new_wv(:,cnt) = wv_all(:,1,i);
new_lat(cnt) = lat(i);
cnt = cnt + 1;
end
bin = 1:104;
[BIN, LAT] = meshgrid(new_lat, bin);
surf(BIN, LAT, new_wv);
shading interp;
colormap(jet);
colorbar
xlabel('lat');
ylabel('bin');
zlabel('wave poer');
print(gcf, '-djpeg', 'error2.jpg')
2.2、俯视视角三维图
clc,clear,clf
filename = 'C:\Users\xxk\Desktop\卫星测高\DAHITO--青海湖数据\matlab处理示例数据\JA2_GPS_2PdP006_240_20080908_230802_20080909_000414.nc';
lat = ncread(filename,'lat');
lat_20hz = ncread(filename,'lat_20hz');
lat_index = find(lat >= 22 & lat <= 25);
wv_all = ncread(filename,'waveforms_20hz_ku');
cnt = 1;
for i = min(lat_index) : max(lat_index)
new_wv(:,cnt) = wv_all(:,1,i);
new_lat(cnt) = lat(i);
cnt = cnt + 1;
end
bin = 1:104;
[BIN, LAT] = meshgrid(new_lat, bin);
surf(BIN, LAT, new_wv);
shading interp;
colormap(jet);
view(0,90)
colorbar
xlabel('lat');
ylabel('bin');
zlabel('wave poer');
print(gcf, '-djpeg', 'error2.jpg')
3、正确的画法
3.1、正常视角三维图
filename = 'C:\Users\xxk\Desktop\卫星测高\DAHITO--青海湖数据\matlab处理示例数据\JA2_GPS_2PdP006_240_20080908_230802_20080909_000414.nc';
lat = ncread(filename,'lat');
lat_20hz = ncread(filename,'lat_20hz');
lat_index = find(lat >= 22 & lat <= 25);
wv_all = ncread(filename,'waveforms_20hz_ku');
figure;
for i = min(lat_index) : max(lat_index)
x = [lat(i), lat(i + 1)];
y = 1 : 104;
[X, Y] = meshgrid(x, y);
Z = [wv_all(:,1,i), wv_all(:,1,i)];
surf(X, Y, Z);
hold on;
end
hold off;
shading interp;
colormap(jet);
colorbar
xlabel('lat');
ylabel('bin');
axis([22, 25, 1, 104])
print(gcf, '-djpeg', 'right3.jpg')
3.2、俯视视角三维图
filename = 'C:\Users\xxk\Desktop\卫星测高\DAHITO--青海湖数据\matlab处理示例数据\JA2_GPS_2PdP006_240_20080908_230802_20080909_000414.nc';
lat = ncread(filename,'lat');
lat_20hz = ncread(filename,'lat_20hz');
lat_index = find(lat >= 22 & lat <= 25);
wv_all = ncread(filename,'waveforms_20hz_ku');
figure;
for i = min(lat_index) : max(lat_index)
x = [lat(i), lat(i + 1)];
y = 1 : 104;
[X, Y] = meshgrid(x, y);
Z = [wv_all(:,1,i), wv_all(:,1,i)];
surf(X, Y, Z);
hold on;
end
hold off;
view(0, 90)
shading interp;
colormap(jet);
colorbar
xlabel('lat');
ylabel('bin');
axis([22, 25, 1, 104])
print(gcf, '-djpeg', 'right3.jpg')