MATLAB 怎么把一个向量里出现的数据作为横坐标,出现的次数作为纵坐标画图
作者&投稿:邗怡 (若有异议请与网页底部的电邮联系)
matlab如何把一个数组里出现的数据作为纵坐标~
比如数组是a
直接
plot(a)
>> figure(1)
hold;
hd(1)=plot(a1,b1,'r.');%红色
hd(2)=plot(a2,b2,'g.');%绿色
hd(3)=plot(a3,b3,'b.');%蓝色
hd(4)=plot(a4,b4,'m.');%紫红色
legend(hd([1 2 3 4 ]),'a1 b1','a2 b2','a3 b3','a4 b4');
title('4 group of data');
下面是效果图
% solve the question in Baidu Zhidao
% edited by Beenwa
% edited on 2015-1-29
clear;close all;clc;
data=[8.376271
8.378271
8.375271
8.378271
8.377271
8.378271
8.378271
8.378271
8.378271
8.378271
8.378271
8.217058
8.217058
8.217058
8.217058
8.217058
8.217058
8.217058
8.217058
8.217058
8.378271
8.378271
8.378271
8.378271
8.378271];
A2=unique(data);
n=histc(data,A2);
figure;stem(A2,n,'ko');
xlabel('向量值');ylabel('出现次数');
举例如下,你可以看看每一步运行的结果,就知道是怎么回事了:
% 用一个简单的序列举例
a = [ 2 6 2 3 5 3 2 3 6 2 ]';
% 排下序,方便后面获取每个数的位置
a = sort( a );
% 得到a的不重复数列,并获取每个不重复数的位置
[ c ia ] = unique( a );
% 每个不重复数字的位置的差即为每个数出现的次数
y = diff( [ 0; ia ] );
stem( c, y, 'MarkerFaceColor', [ 1 0 0 ] );