我正在尝试在MATLAB中制作直方图。我的数据量巨大(350万),x和y数据量相同(均为350万)
我的原始数据有200,200,88个3D矩阵,我将其重塑为1列
此代码:
[dose , size] = Dose('C:\R1')
s = size(1)*size(2).size(3)
t = reshape(dose, s, [])
当我尝试命令hist(t)时,我只有一个1 bar。
我的工作区如下:
dose <200x200x88 double>
s 3520000
size [200,200,88]
t <3520000x1 double>
您能告诉我如何使用此数据制作直方图吗?
最佳答案
为了从3D数组中获取单个长 vector ,您可以仅使用(:)
运算符。尝试以下代码:
num_of_bins = 100; %更改为您想要的任何#
hist(dose(:),linspace(min(dose(:)),max(dose(:)),num_of_bins));
hist
仅采用dose
的相关限制(最小到最大),您可以随意控制垃圾箱的数量。我已经使用linspace
创建了线性间隔的bin vector ,但是也可以通过分配不同的范围 vector 将其修改为一组不同的bin。