matlab画一组数据的频率分布图
L空间度汇总.xlsx
B=xlsread(‘L空间度汇总.xlsx’);
%注意点,待处理数据的excel文件要和脚本文件路径相同,即放置在同一文件夹下,否则无法正确读入数据。
m_1=0;
m_2=0;
m_3=0;
m_4=0;
m_5=0;
%事先知道该组数据中共有5个取值就设为5个变量
m_1=sum(B(:)==1); %利用sum函数统计B变量中共有几个值为1的元素,并将该 元素个数赋值给m_1。
m_2=sum(B(:)==2);
m_3=sum(B(:)==3);
m_4=sum(B(:)==4);
m_5=sum(B(:)==5);
x=[1 2 3 4 5]; %x轴的记号点
y=[m_1/225 m_2/225 m_3/225 m_4/225 m_5/225];
plot(x,y,’’) %plot里要加上’'也就是散点的符号,才能画出散点图,否则会画出来折线图。
改进代码:
A=xlsread(‘L空间度汇总.xlsx’);
X=unique(A); %使用unique函数去掉矩阵A中的重复元素
for i = 1:length(X)
eval([‘m_’,num2str(i),’=’,‘0’]) %使用eval函数将m_i变量赋值为0
end
m_1=sum(A(:)==X(1))
m_2=sum(A(:)==X(2))
m_3=sum(A(:)==X(3))
m_4=sum(A(:)==X(4))
m_5=sum(A(:)==X(5))
y=[m_1/225 m_2/225 m_3/225 m_4/225 m_5/225];
plot(X,y,’*’)