实战二2011A

已知三个向量绘制三维曲面图

之前学到的 meshsurf函数用于绘制三维曲面图(x,y,z)
前提条件是已知 x,y向量,如果
在这里插入图片描述

首先将你的矩阵导入MATLAB,变量名为A。
m=max(A);n=min(A);
x=A(:,1);y=A(:,2);z=A(:,3);
[X,Y,Z]=griddata(x,y,z,linspace(n(1),m(1))',linspace(n(2),m(2)),  'cubic');%cubic插值方式可换,具体请参考MATLAB帮助文档对函数griddata的解释
figure;
pcolor(X,Y,Z);grid on;
figure;
contourf(X,Y,Z);grid on;
figure;
mesh(X,Y,Z);grid on;
figure;
surf(X,Y,Z);grid on;%图形的具体修饰,很多,请具体参考帮助系统

griddata用法

(1)ZI = griddata(x,y,z,XI,YI)
用二元函数z=f(x,y)的曲面拟合不规则的数据向量x,y,z。griddata 将返回曲面z在点(XI,YI)处的插值。曲面总是经过这些数据点(x,y,z)的。输入参量(XI,YI)通常是规则的格点(像用命令meshgrid 生成的一样)。XI 可以是一行向量,这时XI 指定一有常数列向量的矩阵。类似地,YI 可以是一列向量,它指定一有常数行向量的矩阵。
(2)[XI,YI,ZI] = griddata(x,y,z,xi,yi)
返回的矩阵ZI 含义同上,同时,返回的矩阵XI,YI 是由行向量xi 与列向量yi 用命令meshgrid 生成的。
(3)[XI,YI,ZI] = griddata(…,method)
用指定的算法method 计算:
‘linear’:基于三角形的线性插值(缺省算法);
‘cubic’: 基于三角形的三次插值;
‘nearest’:最邻近插值法;
‘v4’:MATLAB 4 中的griddata 算法。

pro1

1、错得离谱
不仔细看表格,xlsread把样本点的序号也读入了数据矩阵
太致命了,下次碰到不确定的用法一定要测试

[num,txt,raw]=xlsread('data.xls', 2);
c=num;
c(:,1)=[];

2、访问数组元素要记得下标,不要直接用数组名(有时数组之间进行运算他也不报错,但结果就死了
3、理解上,一开始脑子没转过弯,每个区域浓度计算的和 要除以该区域样本点的个数

clc,clear
format short g
x=xlsread('data.xls','sheet1','B4:B322');
y=xlsread('data.xls','sheet1','C4:C322');
z=xlsread('data.xls','sheet1','D4:D322');
% u=xlsread('data.xls','sheet2','B4:B322');
area=xlsread('data.xls','sheet1','E4:E322');

[num,txt,raw]=xlsread('data.xls', 2);
c=num;
c(:,1)=[];

len=length(x)% 319
% arpha*L(i,j):第i种重金属在j区域的存在量  (8,5)
L=zeros(8,5);

% h=0.1
% s=1000000
% rho%=[rho1,rho2,rho3] %密度
% arpha=dm=rho*h*s

c(:,1);
cnt=zeros(5,1) %每个区域样本点的个数
for i=1:8 %第i种元素
for k=1:len  %样本点
    j=area(k); %第k个样本点在区域j
    L(i,j)=L(i,j)+c(k,i);  %第i种元素
end
end

L

for k=1:len  %样本点
    j=area(k) ;%第k个样本点在区域j
    cnt(j)=cnt(j)+1;
end
cnt
average=zeros(8,5);
for i=1:5
    averge(:,i)=L(:,i)/cnt(i);
end
averge

RI=zeros(1,5);%5个区域分别的污染指数
T=[10,30,2,5,40,5,5,1];%重金属i的毒性系数
bv=[3.6,130,31,13.2,35,12.3,31,69];
for i=1:8
    for j=1:5
   RI(j)=RI(j)+T(i)/bv(i)*averge(i,j);
    end
end
RI



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值