我使用两个脚本创建直方图,一个是matlabs自己的hist
函数,另一个是我下载的脚本。我下载的脚本采用绝对最小值和最大值,并在其间生成直方图。但问题是,与MATLAB不同,此直方图不会显示。我收到了一个矢量。
现在比较两个我在使用plot
的视觉效果,但由于某种原因,比例会发生变化。例如,使用MATLAB的hist
的直方图如下所示:
如果我在plot
中显示此直方图,则x轴刻度会发生变化:
如何保持比例相同?
我需要这个,因为下载的脚本不生成直方图,所以要显示它我使用plot
。情节再次介于0和100之间,我觉得这可能不是一个准确的比较
答案 0 :(得分:4)
您似乎没有使用所有可用信息。请参阅下面的代码,了解如何完成您的工作:
%% Generate some data:
rng(42653042);
data = randn(300); data = (data-min(data(:)))*90+100;
data(1:4:end) = data(1:4:end)/2;
%% Plot using hist:
figure(); hist(data(:),100);
%% Return bin info using hist:
[N,X] = hist(data(:),100);
%% Plot the other function's output w/o X:
figure(); plot(N);
%% Plot the other function's output w/ X:
figure(); plot(X,N);
figure(); bar(X,N);
函数hist
应该在较新版本的MATLAB中替换为:
histogram
,用于绘图时(即hist
没有输出的情况)。histcounts
,当用于计数时(即带有输出的hist
的情况)。答案 1 :(得分:3)
使用“n = hist(Y,x),其中x是向量,返回长度(x)区间中Y的分布,其中心由x”指定,以指定区间中心。