在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、hist函数(1)hist(x),其中x是一维向量,该函数是将x的最小值与最大值之间的区间等分为10份,输出的直方图横坐标为x,纵坐标为相应区间数值的个数。相当于hist(x,10)。从下图可以测试,可以看出两种用法是相同的。 (2)[a,b] = hist(x,n):这里是将区间分为n份,横坐标是x,纵坐标是个数。a为落在该区间的个数,b为该区间中心线位置坐标。其中,[a,b] = hist(x,6)不画图,只输出结果;hist(x,6)不输出结果,只画图。 下面演示一下: [a,b]=hist(x,5) a = 3 0 4 3 1
0.1440 0.3120 0.4800 0.6480 0.8160 当输入:hist(x,5),得到下面的图表: 二、bar函数bar函数画直方图有四种可用的形式: y=[5 4 3 2 9;4 8 7 2 7;1 9 5 7 3]; 可以看到,y为3行5列的矩阵,则应用bar函数后得到的直方图是分成了3组5列;所以bar(y)得到的图像就是按照y的行和列进行绘制的; (2)bar(x,y)函数: 其中x 必须单调递增或递减,y 为n*m的矩阵,可视为结果为m组,每 可以看到,bar(x,y)就是将bar(y)进行了扩展,但是x必须是单调的,且x的元素个数必须和y的行数匹配,如下面就出现了错误: y=[5 3 2 9;4 7 2 7;1 5 7 3]; (3)bar(x,y,width) (或者是bar(y,width))指定每个直方条的宽度,如width>1,则直方条会重 y=[5 3 2 9;4 7 2 7;1 5 7 3]; 得到了下图: (4)ba(...,’grouped’) 使同一组直方条紧紧靠在一起; 如下列所示: 输入: bar(y,'stack'); 得到: 总结:可以看到,bar(y)和bar(x,y)两个用法是一样的,可以直接使用bar(y),不必使用bar(x,y)这一麻烦用法; 但是有一个是需要注意的:当对横坐标x没有要求时,可以直接使用bar(y);而如果涉及到修改x轴,那么就需要使用bar(x,y) 另外,对比一下hist()函数和bar()函数,可以发现,hist()函数使用中,需要对横坐标进行等分,即分组操作;而bar()函数直接按照y的列数确定横坐标的分组,y有多少列,那么横坐标就分成几个组,所以猜想:当x横坐标指定为字符类型时,怎么操作呢? x=['小明','小强','小黑']; 那么绘制的时候会出现什么问题呢: bar(x,y)后: 得到:错误使用 bar (line 41) 那么怎么才能达到想要的效果呢?那么这就涉及到了数据类型之间的相互转换了。http://blog.sina.com.cn/s/blog_542a1e4a0100sjpp.html 在上面的一篇文章中,就细细的讲述了Matlab中数据类型的细节 那么本文主要是讲述整理数据类型之间的类型转换: (1)数值型转换成布尔类型 数值型数据转换成逻辑型的数据一般遵循以下规则:非0的数值型数据转换成逻辑真,即1;等于0的数值转换成逻辑假,即0。主要使用的是logical()函数: num=12; n = logical 1 (2)布尔值转换为数值型 两种方法
比如下面的例子: n = logical 1 >> num num = 1 a='hello'; b = 104 101 108 108 111 使用cellstr函数 a='hello'; b = 1×1 cell 数组 {'hello'} (5)用字符串作为变量名 使用eval()函数,可以将字符串转换成变量名,如下面所示: str_var = 'varNumber'; varNumber = 20 上例中,首先定义了一个变量str_var,变量值为‘varNumber’,然后使用eval函数将str_var的变量值转换成了一个新的变量,其变量值为20,所以可以在工作空间内看到多了一个变量varNumber (6)变量名转换为字符串 这里需要用到inputname()函数,但是直接想(5)中使用inputname 得到下面的情况: 所以,这里需要构造一个函数,这可以以下的连接中找到:https://blog.csdn.net/humanking7/article/details/80628757 那么,到这里发现还是不能完成之前的设想,那么到底如何才能使得横坐标设置为汉字类的形式呢?就如下面的展示的那样: 那么,下面就开始进行探索: x=2000:2015;
那么,如何将下面的这幅图下标1 2 3换成 小明 小红 小黑 呢? 只需要一个简单的操作即可: x=[1 2 3]; 最终得到了下面的图像: 大功告成,至此关于绘制直方图的两个函数hist函数和bar函数,以及一些零碎的知识点已经全部完成,下一步将进行更加美观高大上的位图和其他高深的图像前进,加油! |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论