MATLAB中有x,y,z,m四个列向量,m为对应坐标的值,如何用surf画出三维图形,让m根据大小

MATLAB中有x,y,z,m四个列向量,m为对应坐标的值,如何用surf画出三维图形,让m根据大小显示不同颜色... MATLAB中有x,y,z,m四个列向量,m为对应坐标的值,如何用surf画出三维图形,让m根据大小显示不同颜色 展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
ring_year
推荐于2016-12-01 · TA获得超过1425个赞
知道小有建树答主
回答量:632
采纳率:80%
帮助的人:513万
展开全部
这就是一个四维绘图。
matlat里面有用颜色表示第四维的方法,具体可以参考下面方法,x1,x2,x3换成了x,y,z,然后y换成了f,代码如下所示。x = [23.500 29.677 37.167 18.000 33.667 37.278 27.222 26.444 27.500 16.583 34.750 17.833 33.853 48.500 26.333 23.833 21.405 55.000 33.917 24.867 23.190];
y = [23.742 71.276 30.469 5.926 15.920 5.694 6.790 8.671 11.367 12.103 10.159 15.523 11.846 6.283 33.953 31.895 12.331 11.130 19.546 7.746 10.478];
z = [0.875 1.938 1.125 1.563 0.750 0.438 0.090 0.688 0.688 1.000 0.688 1.188 0.875 0.125 0.563 1.375 1.625 0.188 0.810 0.400 5.000];y=[67.150 44.800 45.969 26.855 40.875 13.250 29.350 28.576 22.040 54.191 49.759 25.935 22.773 15.900 31.185 27.321 5.151 33.280 14.226 33.747 16.687];
f = 37.6127-0.3003*x1+0.3880*x2-1.3338*x3;
fs=max(y)-min(y);
fsc=(y-min(y))*3/fs;
for i=1:length(x)
if fsc(i)<=1
plot3(x(i),y(i),z(i),'o','color',[fsc(i) 0 0])
hold on
else if fsc(i)<=2
plot3(x(i),y(i),z(i),'o','color',[1 fsc(i)-1 0])
hold on
else
plot3(x(i),y(i),z(i),'o','color',[1 1 fsc(i)-2])
hold on
end
end
end
追答
以前答的一个答案,这里f对应就是你的m啦,代码很简单,只需将后面一部分截取过去即可。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式