Matlab中标记字符串的直方图

用户名

样品输出我有一个数组,其中包含调查中的一些字符串作为结果。我必须在直方图中对其进行建模,并显示选择了多少次值。

到目前为止,我所做的是将数据插入八度。就像跟随;

airlines = {'Turkish Airlines','Turkish Airlines','Anadolu Jet','Turkish Airlines','Onur Air','Anadolu Jet','Turkish Airlines','Turkish Airlines', 'Anadolu Jet','Turkish Airlines','Turkish Airlines','Turkish Airlines','Turkish Airlines','Turkish Airlines','Turkish Airlines','Turkish Airlines','Pegasus Airlines','Turkish Airlines','Atlas Global','Anadolu Jet','Turkish Airlines','Pegasus Airlines','Turkish Airlines', 'Anadolu Jet','Pegasus Airlines', 'Turkish Airlines', 'Onur Air', 'Anadolu Jet','Turkish Airlines','Pegasus Airlines', 'Turkish Airlines','Onur Air','Anadolu Jet','Turkish Airlines','Turkish Airlines','Turkish Airlines','Lufthansa','Delta','Turkish Airlines','Anadolu Jet','Turkish Airlines', 'Anadolu Jet','Onur Air','Atlas Global','Lufthansa','Turkish Airlines','Onur Air','Pegasus Airlines','Turkish Airlines','Anadolu Jet','Turkish Airlines','Pegasus Airlines','Turkish Airlines','Anadolu Jet','Turkish Airlines','Turkish Airlines'};

我还创建了包含所有航空公司名称的标签列表。就像下面的一样;

标签= {'土耳其航空','Onur航空','Anadolu Jet','飞马航空','汉莎航空','Atlas Global','Delta'};

我想用图片中的每个字符串的每次出现次数来创建直方图,如图片中所示。到目前为止,我尝试使用hist,直方图和set函数,但是它们不起作用。Matlab的某些功能在这里不受支持,说实话,我在很多方面都在苦苦挣扎。事先提供一点帮助将是很大的。从现在开始谢谢!

安迪

看看uniq_c.m

1;
function [val, cnt] = uniq_c (X)
  [val, ~, J] = unique (X);
  cnt = accumarray (J(:), 1);
  if (rows (J) == 1)
    cnt = cnt';
  endif
endfunction

airlines = {'Turkish Airlines','Turkish Airlines','Anadolu Jet','Turkish Airlines','Onur Air','Anadolu Jet','Turkish Airlines','Turkish Airlines', 'Anadolu Jet','Turkish Airlines','Turkish Airlines','Turkish Airlines','Turkish Airlines','Turkish Airlines','Turkish Airlines','Turkish Airlines','Pegasus Airlines','Turkish Airlines','Atlas Global','Anadolu Jet','Turkish Airlines','Pegasus Airlines','Turkish Airlines', 'Anadolu Jet','Pegasus Airlines', 'Turkish Airlines', 'Onur Air', 'Anadolu Jet','Turkish Airlines','Pegasus Airlines', 'Turkish Airlines','Onur Air','Anadolu Jet','Turkish Airlines','Turkish Airlines','Turkish Airlines','Lufthansa','Delta','Turkish Airlines','Anadolu Jet','Turkish Airlines', 'Anadolu Jet','Onur Air','Atlas Global','Lufthansa','Turkish Airlines','Onur Air','Pegasus Airlines','Turkish Airlines','Anadolu Jet','Turkish Airlines','Pegasus Airlines','Turkish Airlines','Anadolu Jet','Turkish Airlines','Turkish Airlines'};

[labels, count] = uniq_c (airlines)

给出答案:

labels = 
{
  [1,1] = Anadolu Jet
  [1,2] = Atlas Global
  [1,3] = Delta
  [1,4] = Lufthansa
  [1,5] = Onur Air
  [1,6] = Pegasus Airlines
  [1,7] = Turkish Airlines
}
count =

   11    2    1    2    5    6   29

终于把它画出来

bar (count)
set (gca, "xticklabel", labels)

给出:

历史图

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章