matlab 如何在三维坐标中表示四行数据

应用文件中的数据绘制扭矩随进气歧管长度、进口直径、稳压腔直径变化的等值曲面
x1=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','B5:B84');
x2=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','G5:G84');
x3=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','L5:L84');
x=[x1;x2;x3];
y1=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','C5:C84');
y2=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','H5:H84');
y3=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','M5:M84');
y=[y1;y2;y3];
z1=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','D5:D84');
z2=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','I5:I84');
z3=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','N5:N84');
z=[z1;z2;z3];
co1=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','E5:E84');
co2=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','J5:J84');
co3=xlsread('C:\Users\fengtingfan\Desktop\考试\data.xlsx','O5:O84');
co=[co1;co2;co3];
% 网格数据
[xt, yt] = meshgrid(linspace(min(x), max(x)), linspace(min(y), max(y)));
% 网格插值——节点
zt = griddata(x, y, z, xt, yt, 'v4');
% 网格插值——颜色
cot = griddata(x, y, co, xt, yt, 'v4');
% 绘图
figure; hold on; box on;
%plot3(x, y, z, 'r.');
surf(xt, yt, zt, cot);
contour3(xt,yt,zt,cot)
hold on
view(3)
colorbar
colormap([0 0 0; 0.1 0.5 0.4; 0.2 0.2 0.6; 0.3 0.3 0.4; 0 1 0; 0 0.5 0.5; 0 0 1])
这是我写的程序,但是结果总是出不来 求大神帮忙看看提一些建议
数据示例:
转速1 转速2 转速3

转速1

歧管长度 稳压腔直径 歧管进口直径 扭矩

mm mm mm Nm

200 80 31 102.88




表示四维,分别为x,y,z,col。
那么x,y,z可以做出三维图来。
col可以在x,y,z,上表示颜色。

改成colormap summer

下面是一串正确代码,可以参考

yi=linspace(min(y),max(y),100);
[xi,yi]=meshgrid(xi,yi);
zi=griddata(x,y,z,xi,yi);
ci=griddata(x,y,c,xi,yi);

marker={'*','o','s','^','d'};
color={'k','r','y','m','b'};

mat={'As','Cd','Cr','Cu','Hg','Ni','Pb','Zn'};

str={'等高线','生活区','工业区','山区','交通区','公园绿地区'};
for j=1:8
% 等高线图形
figure

contourf(xi,yi,zi,0:10:500);

% set(h,'ShowText','on','TextStep',get(h,'LevelStep')*2)
% clabel(C,h,[0:10:50,50:50:300,300:100:500]);
title(['元素 ',mat{j}, ' 二维等高线分布图'])
xlabel('X')
ylabel('Y')
colormap summer追问

这个题里面第四组数据是给了具体的数值 直接用colormap summer可以吗?
还有x的数据是重复的即:200 200 200 200 。。。这样 这个会影响插值吗?
我插值的时候就出错了

追答

还要用xlsread?直接把excel中的矩阵,复制到一个变量里不就行了。而且excel中要是有文字类型的单元格时,可能会引起错误。复制方法是,在workspace中新建一个变量,双击打开,然后去excel中把数据复制过来。
还有插值方法,不同的插值方法,结果不同,可以试试,'linear','cubic','natural','nearest'。一般大家好像是用'natural'。

contour3(xt,yt,zt,cot)用错了,v是用来限制等高线的,只画等于v的那些线。

温馨提示:答案为网友推荐,仅供参考
相似回答