Info

この質問は閉じられています。 編集または回答するには再度開いてください。

How to do this

1 回表示 (過去 30 日間)
Ram k
Ram k 2016 年 5 月 11 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
Suppose I have a sequence of n numbers
e=[5,4,45,63,22,22,1,12,3,2,2,16,14,14,16,17,1,19,21,15,32,32,27,27,43,41,7,8,13,23,23]
then for first 10 numbers i.e.
[5,4,45,63,22,22,1,12,3,2]
count numbers other than 1 to 5 and then divide by 10, i.e.
[45,63,22,22,12]
total 5, so result should be 5/10,now for first 20 numbers i.e.
[5,4,45,63,22,22,1,12,3,2,2,16,14,14,16,17,1,19,21,15]
then
[45,63,22,22,12,16,14,14,16,17,19,21,15]
total =13, so 13/20, like this for first 30,40,50...upto n numbers
and then plot figure with x axis points 0 10 20 30....n and y axis with 5/10,13/20..... how to do this

回答 (1 件)

Guillaume
Guillaume 2016 年 5 月 11 日
編集済み: Guillaume 2016 年 5 月 12 日
Have you tried using a loop? It would be very straightforward.
Alternatively:
e=[5,4,45,63,22,22,1,12,3,2,2,16,14,14,16,17,1,19,21,15,32,32,27,27,43,41,7,8,13,23,23]
countinout = accumarray([ceil((1:numel(e))/10); 2-(e>5)]', e, [], @numel);
ratioin = cumsum(countinout(:, 1)) ./ (1:size(countinout(:,1)))' ./ 10;
plot((0:numel(ratioin)-1)*10, ratioin)
  2 件のコメント
Ram k
Ram k 2016 年 5 月 11 日
but how it is, y axis output should be less than or equal to 1, because number count should not exceed selected sequence length.
Guillaume
Guillaume 2016 年 5 月 12 日
Sorry, made a mistake that I've now corrected.
As I said, you're better off using a simple loop. It will be a lot easier to understand and probably just as fast.

この質問は閉じられています。

Community Treasure Hunt

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

Start Hunting!

Translated by