Convert for loop to matrix operation

2 ビュー (過去 30 日間)
Bernhard Petri
Bernhard Petri 2023 年 3 月 29 日
回答済み: daniel mitchell 2023 年 3 月 29 日
I have loaded an image, created a histogram for it and would like to convert this for loop to matrix operation, how would I do that?
h1 = histogram(img1, edges, 'normalization','probability');
cdf = zeros(1, h1.NumBins);
sum_value = 0;
for i = 1:h1.NumBins
sum_value = sum_value + h1.Values(i);
cdf(i) = (h1.NumBins-1)*sum_value;
end
  1 件のコメント
Antoni Garcia-Herreros
Antoni Garcia-Herreros 2023 年 3 月 29 日
Hello,
You can try using cumsum
sum_value=sum(h1.Values); %This will be always 1 if you use the normalitzation probability in your histogram
cdf=cumsum(h1.Values).*(h1.NumBins-1);

サインインしてコメントする。

回答 (1 件)

daniel mitchell
daniel mitchell 2023 年 3 月 29 日
perhaps this is the solution you are looking for?
h1 = histogram(randn(1e7,1), 'normalization','cdf','DisplayStyle','stairs');
cdf = h1.Values;

カテゴリ

Help Center および File ExchangeProblem-Based Nonlinear Optimization についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by