直方图中点样结果的频率

时间:2018-08-03 03:25:01

标签: matlab histogram

我才刚刚开始学习Matlab。

情况: 从3个元素中,假设1,2和3。我想随机采样2个元素。我想模拟100次以查看结果对的概率。 如何将结果绘制在直方图上,以使每对频率可视化。到目前为止,我可以进行采样了:

for i=1:100
datasample(1:3,2,'Replace',true)
end

因此可能的结果是(1,1),(1,2),(2,1),(2,3)等。 如何使用直方图绘制结果的频率?

预先感谢

1 个答案:

答案 0 :(得分:1)

n = 100;

% generate data random
arr = zeros(n, 2);
for i = 1:n
    arr(i, :) = randi([1,3],1,2);
end

% frequency
[ii, jj, kk] = unique(arr, 'rows', 'stable');
f = histc(kk, 1:numel(jj));
result = [ii f];

% plot
cuts = strcat(num2str(result(:,1)), '-',num2str(result(:,2)));
bar(result(:,3))
grid on
xlabel('combination')
ylabel('frequency')
set(gca,'xticklabel',{cuts});
set(gca,'XTickLabelRotation',45);