Day25_0.1基础学习MATLAB学习小技巧总结(25)——四维图形的可视化

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。

参考书目:

1、《MATLAB基础教程 (第三版) (薛山)》

2、《MATLAB R2020a完全自学一本通》

之前的章节都是基础的数据运算用法,对于功课来说更加重要的内容是建模、绘图、观察数据趋势,接下来我会结合自己的使用经验,来为大家分享绘图、建模使用的小技巧。

在本章中的代码,会以资源的形式发在我的博客里供大家免费下载学习。

四维图形的可视化

使用mesh和surf等指令绘制的图像,在未设定颜色参数的情况下,颜色沿z轴的数据变化。例如,执行surf(X,Y,Z)和surf(X,Y,Z.Z)的结果是相同的。将颜色映射到z轴能够产生生动的图像,但由于z轴本身的数据已存在,因此并不提供额外信息。

为更有效地利用颜色,可以考虑用颜色描述不受三个轴影响的数据特性。为此,需要为三维绘图函数赋予一个"第四维"的颜色参数数据。

如果绘图函数的颜色参数是向量或矩阵,则可以将其作为颜色映射的索引。该参数可以是任意实数向量或与其维度相同的矩阵。

1 用颜色描述第四维

例:

Matlab 复制代码
[X,Y,Z] = peaks(30);
R = sqrt(X.^2 + Y.^2);
subplot(1,2,1);surf(X,Y,Z,Z);
axis tight
axis square
subplot(1,2,2);surf(X,Y,Z,R);
axis tight
axis square

在坐标系中,描述一个面需要三维数据,而另一维数据则用于表示空间中点的坐标值,通过不同的颜色来表现。在左图中,第四维数据为Z;在右图中,第四维数据为R。可以明显观察到两者的颜色分布存在显著差异。

其他函数:

除了surf函数,mesh和pcolor函数也可以将第四维的数据附加到颜色属性上,并在图像中进行展示。以下是各函数的语法列表:

调用格式 说明
surf(X,Y,Z,fun(X,Y,Z)) 根据函数fun(X,Y,Z)来附加颜色数据
surf(X,Y,Z)=surf(X,Y,Z,Z) 默认动作,附加颜色数据于z轴
surf(X,Y,Z,X) 附加颜色数据于x轴
surf(X,Y,Z,Y) 附加颜色数据于y轴
surf(X,Y,Z,X.^2+Y.^2) 在xoy平面上距原点一定的距离附加颜色数据
surf(X,Y,Z,de12(Z)) 根据曲面的拉氏函数值附加颜色数据
[dZdx,dZdy]=gradient(Z);surf(X,Y,Z.abs(dZdx)) 根据x轴方向的曲面斜率附加颜色数据1·
dz=sqrt(dZdx.^2+dZdy.^2);surf(X,Y,Z,dz) 根据曲面斜率大小附加颜色数据
相关推荐
vortex52 分钟前
Bash中因数值比较引发的提权漏洞:数组注入与任意命令执行
linux·开发语言·安全·网络安全·渗透测试·bash
霍珵蕴3 分钟前
R语言的嵌入式图形界面
开发语言·后端·golang
promising-w7 分钟前
【TI MSPM0】UART学习
嵌入式硬件·学习·ti 单片机
夏天的阳光吖7 分钟前
C++蓝桥杯实训篇(二)
开发语言·c++·蓝桥杯
梁下轻语的秋缘13 分钟前
每日c/c++题 备战蓝桥杯(小球反弹)[运动分解求解,最大公约数gcd]
c语言·c++·学习·算法·数学建模·蓝桥杯
Trustport33 分钟前
C# EventLog获取Windows日志进行查询设置多个EventLogQuery查询条件
开发语言·c#
前往深圳36 分钟前
数据结构:LinkedList与链表
java·开发语言·学习
机器学习之心36 分钟前
Transformer+BO-SVM多变量时间序列预测(Matlab)
支持向量机·matlab·transformer·贝叶斯优化·多变量时间序列预测
敲键盘的小夜猫39 分钟前
Java服务端性能优化:从理论到实践的全面指南
java·开发语言·性能优化
勘察加熊人1 小时前
c#的form实现飞机大战
开发语言·c#