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