3

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小節しか表示されませんでした。

私のワークスペースは次のとおりです。

dose   <200x200x88 double>
s      3520000
size   [200,200,88]
t      <3520000x1 double>

このデータでヒストグラムを作成する方法を教えてください。

4

2 に答える 2

1

サイズ3520000x1のベクトルを生成し、それを使用してヒストグラムを作成することができます。

val = rand(3520000,1);

hist(val)

データにいくつかの特異な外れ値があり、ビンが(1,0,0、...、3519999)のように見える可能性があります。ヒストグラムのビンを保存すると、h=hist(data);何が起こったかを確認できます。

于 2012-12-04T17:26:43.910 に答える
0

(:)3D配列から単一の長いベクトルを取得するには、演算子のみを使用できます。次のコードを試してください。

num_of_bins = 100; %必要なものに変更します#hist(dose(:)、linspace(min(dose(:))、max(dose(:))、num_of_bins));

は(最小から最大)histの関連する制限のみを取りdose、ビンの数を自由に制御できます。以前linspaceは線形間隔のビンベクトルを作成していましたが、別の範囲ベクトルを割り当てることで、これを別のビンのセットに変更することもできます。

于 2012-12-04T20:30:03.517 に答える