我正在尝试在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。

10-08 18:29