如何使用MATLAB对任意三维数据绘制三维曲面

 我来答
秦小晓的阿晓
2017-07-05 · 超过45用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:38.8万
展开全部
方法:将两组数据运用拟合的方法得到关于第三组数据的回归方程,通过回归方程和meshgrid扩充数据点。
工具:Matlab2011a
实例:
(1)数据列:
K/NM/° C/NMS/° At/NM
10 0.1 128
20 0.2 260
30 0.3 393
40 0.4 531
50 0.5 672
60 0.6 815
70 0.7 954
80.27 0.8 1102
90 0.9 1251
100 1 1406
(2)绘制K_C_At之间的三维曲面
(3)步骤:
1)直接在matlab的command窗口导入数据
2)编写m.文件
源文件如下:
%%************Three Dimensional**************%%
%%输入数据
%%刚度K,阻尼C与扭簧峰值差Pt间的三维曲面
%x1:输入刚度K,单位NM/°
%x2:输入阻尼C,单位NMS/°
%y :扭簧振幅差Pt
%%*******************************************
x1=data(:,1);%c数据列
x2=data(:,2);%k数据列
y=data(:,3);%At数据列
%%********************************************
%将多元分线性回归转化为线性回归方程求解
X=[ones(size(x1)) x1.*x1 x1 x2.*x2 x2 x1.*x2];
[b,bint,r,rint,stats]=regress(y,X,0.05);
b
%三维散点图分布
scatter3(x1,x2,y,'filled')
hold on;
%%*********************************************
%数据差值
x1fit=10:1:109;
x2fit=0.1:0.009:1;
%%**********************************************
[xi,yi]=meshgrid(x1fit,x2fit);
%非线性拟合方程
zi=b(1)+b(2)*xi.*xi+b(3)*xi+b(4)*yi.*yi+b(5)*yi+b(6)*xi.*yi;
%绘制三维曲面
meshc(xi,yi,zi);
hold on;
%调整视角
% view(140,30)
%%************************************************
%加注坐标
xlabel('stiffness/(NM/°)');ylabel('damping/(NMS/°)');
zlabel('amplitude of aberration with torque/(NM)');
figure(2)
%残差分析
rcoplot(r,rint);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式