for文の中で計算結​果を変数に格納、ヒス​トグラムを描く

30 views (last 30 days)
舞美
舞美 on 19 Oct 2023
Commented: Akira Agata on 25 Oct 2023
for文の中で、計算した結果を変数に格納してそれぞれをまとめたヒストグラムを描きたいです。
for文の中で、ファイル1とファイル2を比較して計算し、その結果をsとしています。また次にファイル2とファイル3を比較して計算するのですが、その際に、前の結果に今回の計算結果が足されてしまいます。例えば3回for文を回す際には3個のsを出してそのsをヒストグラムに描きたいです。日本語がたらずうまく説明できませんが教えていただきたいです。

Answers (1)

Akira Agata
Akira Agata on 20 Oct 2023
変数 s を配列として、for 文を回すごとに結果を保存してゆくのが良いかと思います。
たとえば 2 つのファイルの比較を100回実施する場合、以下のようなコードになるかと思います。
% 要素数100の配列を作成
s = zeros(100, 1);
% 2 つのファイルの比較を100回実施して結果を配列に保存
for kk = 1:100
s(kk) = (2つのファイルの比較処理)
end
% 結果をヒストグラム表示
figure
histogram(s)
  2 Comments
舞美
舞美 on 25 Oct 2023
ありがとうございます。
やってみた結果、例えば計算結果がx=1,1,1,1,1,2,2,2,2,2だったとして、本当はx軸を1、2、3などとして、y軸を結果の値(一個目なら1、10個目なら2)というふうに表示したいのですが、結果がx軸が結果の値、y軸が結果の値が何回あったか(xが1の時yが5、xが2の時yが5)となってしまいます。この改善策を教えていただきたいです。
Akira Agata
Akira Agata on 25 Oct 2023
コメントありがとうございます。
ご要望の表示形式について確認させてください。「計算結果がx=1,1,1,1,1,2,2,2,2,2だったとして、本当はx軸を1、2、3などとして、y軸を結果の値(一個目なら1、10個目なら2)というふうに表示したい」とありますが、ヒストグラム(histogram)ではなく散布図(scatter)のイメージでしょうか?
たとえば計算結果が s = [1,1,1,1,1,2,2,2,2,2] (混乱を避けるため変数名を s としました)だったとして、「x軸が配列の要素番号、y軸が結果の値」を表す散布図を作ると以下のようになります。
s = [1,1,1,1,1,2,2,2,2,2];
x = 1:10;
figure
scatter(x, s, "filled") % 分かりやすいようにマーカーを塗りつぶして表示

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!