MATLAB数据处理
MATLAB数据处理方面有
1.插值方法介绍,以及获取插值后所得二维、三维图像的信息,并存入EXCEL中。
2.迭代方法,单元迭代以及二元迭代
3.matlab与c#混合编程相关问题解决,比如符号工具箱的函数无法被封装成dll,等。
三维曲面的绘制是基础
三维曲面绘制
surf函数
三维曲面的绘制需要三个变量。这里是两个自变量,一个因变量。
先上代码。
I=xlsread("D:.xlsx"); %读取excel文件
y=I(1:17,9:26); %这里是把矩阵赋值给了y,17*18的矩阵
s=[100 90 80 70 60 50 40 30 20 10 8 6 4 2 1 0.5 0.25]; %变量1,17个数
t=[286.15 287.15 288.15:3:318.15 319.15 320.15 321.15 322.15 323.15]; %变量2,18个数
surf(t,s,y); %绘制三维曲面
title(''); %设置标题
xlabel('t'), ylabel('s'), zlabel('y'), % 三个坐标轴的命名
axis([285 325 0 100 0 0.0004]); %对X,Y,Z轴范围的控制
这里变量t,s的个数分别对应着矩阵y里的行数和列数,这个方法里,用到了两个向量,一个矩阵(这个矩阵是与两个向量相对应的),直接就可以surf了。
那么画曲面就必须要准备好一个矩阵吗?y要是向量就不可以了吗?
是可以的。
但是这时候由于两个自变量不是等距取点(一般情况下,自变量哪有互相对应着等距取点的?),为了达到等距取点的目的,就要用到meshgrid函数,即利用插值作图。
上代码
s = data(:, 1);
t = data(:, 2);
y = data(:, 3); %可以看到,这里两个自变量,一个因变量都是向量形式。
[T,S]=meshgrid(min(t):0.1:max(t),min(s):0.1:max(s)); %将两个自变量等间距取点,确定网络坐标,并返回给T,S
Y=griddata(t,s,y,T,S,'cubic'); %在网格点位置插值求Z 。这里用到了插值方法,我之后会在分享个详细的讲插值的。
surf(X,Y,Z) %绘制曲面
by the way
绘制曲面的时候除了用surf函数,还有用mesh函数的,具体区别不知道,我只知道插值插得太密,mesh直接黑白曲面图,而surf却是彩色的,由此我只用surf。
如此,便是matlab根据三个变量画曲面的简单小方法,希望可以帮助到你。