全部学习汇总: GreyZhang/g_matlab: MATLAB once used to be my daily tool. After many years when I go back and read my old learning notes I felt maybe I still need it in the future. So, start this repo to keep some of my old learning notes servral years ago. (github.com)
大概是刚刚接触MATLAB的时候,我觉得使用MATLAB绘图功能很强大,但是那是对于教我们数学实验的老师来说的。我又觉得使用MATLAB绘图很难,那是专门针对我来说的。可能是由于缺少必要的训练,大学时候对很多程序的概念都有点不是很清晰,这导致在学习某些东西的时候很难从更深的层次上去掌握,更多的是靠自己硬背勉强让自己在考试上过关。
随着在工作中的成长,写代码成了一种习惯。虽说现在我写的代码在质量上、结构上、方法上等等地方还有很大的提升空间,但是对于程序的理解比之前算是更进一步了。很多东西理解起来也并不是多么困难了,一个简单的例子就是曾经使用MATLAB绘图。
写代码如下:
运行结果:
MATLAB绘制出一条正弦曲线。从y的计算方式可以看出,MATLAB对矩阵或者向量的计算是很友好的,多个元素的计算一步到位。
更为简单的方式则是使用fplot,这样,只需要指定一个区间,函数自动选取合适的间隔绘图。一般情况下是绘制的尽量精确。
执行效果如下:
继续丰富细节,增加坐标轴与标题标注:
fplot('sin(x)',[0,10]),xlabel('x'),ylabel('y'),title('y = sin(x)');
执行效果如下:
坐标轴的标记、图像的标题都加上了,开始像那么回事儿了。
使用MATLAB绘制图像,可以把几条不同的曲线在同一个坐标系下显示出来,这对分析一些信号或者数据之间的关系是很有用的。而plot函数本身就支持这种功能,作为函数来看,它的传入参数实际上是一个列表,列表中的元素是一组组的数据。其中,每一组数据的前两个数据是必不可少的,第三个数据是作为图像绘制的修饰参数,指示了曲线的样式。通常来看,我们简单的使用时不需要加入过多的参数修饰,因为MATLAB本身就具有自动区分修饰的功能。
一段代码如下:
x = [0:0.01:10];
y = sin(x);
z = cos(x);
plot(x,y,x,z);
执行效果如下:
如果加入修饰,比如说,把第一条曲线 y = sin(x)指定为红色十字曲线,代码修改如下:
x = [0:0.01:10];
y = sin(x);
z = cos(x);
plot(x,y,'r+',x,z);
执行效果如下:
至于曲线形状以及曲线颜色的修饰参数,帮助手册中可以查找到比较详细的说明。
继续修改代码,为图像加上图例:
x = [0:0.01:10];
y = sin(x);
z = cos(x);
plot(x,y,'r',x,z),xlabel('x'),ylabel('y'),legend('sin(x)','cos(x)');
其中,生成的图例是可以通过鼠标自由拖动放置的,修改效果:
生活工作中有时候需要处理一点Excel的数据,通过MATLAB来做这种处理看来确实是小菜一碟了。之所以用得少,我想还是跟银子有关吧!如果公司不掏银子,这个确实是很难作为首选工具。不可否认,它做的确实是不错!