1 view (last 30 days)

y = 2.5 + 1 * randn(100,1)

sum=0;

N=length(y);

for i = 1 : N

sum= sum + y(i);

end

average=sum/N;

fprintf('the average of this list is %f\n', average)

%%

count=0;

N=length(y);

for y=1:N

if y<2

count=[y<2]

sum(count)

end

disp('The number of values less than two is')

disp(sum(count))

end

above is my code. I can't seem to get the count of values less than 2. need help

David Hill
on 16 Jan 2020

y = 2.5 + randn(100,1);

a=mean(y);

fprintf('the average of this list is %f\n', a);

t=nnz(y<2);

fprintf('The number of values less than two is %d\n', t);

Sign in to comment.

Dominik Mattioli
on 16 Jan 2020

First, your variable 'sum' in your first for-loop is problematic because it is overwriting a built-in MATLAB function called 'sum', rendering it unusable.

A few problems in the second for-loop - here's psuedo code of what you're doing.

y = array_of_random_numbers

For y equal to 1 through the length of y (this reassigns your variable array y to an integer, losing all information):

if y < 2, which is only true for your first iteration:

create a 1x1 logical array detailing whether my iterator is less than 2 (only true for your first iteration)

sum this 1x1 logical array

display the sum of the 1x1 array (in this case, you're only referring to the value of 'count' from your first iteration for all iterations).

Try this instead:

y = 2.5 + 1 * randn(100,1)

y_sum = sum( y, 1 ); % Rename this variable.

N = length( y );

for index = 1:N

y_sum = y_sum + y( index );

end

average = y_sum / N;

fprintf( 'The average of this list is: %f\n', average )

%%

count = 0;

N = length( y );

for iter = 1:N

if y( iter ) < 2

count = count + 1;

end

disp( ['The number of values less than two is: ', num2str( count )] )

end

y = 2.5 + 1 * randn(100,1)

% y_sum= sum( y, 1 ); % Your first for-loop is unneccessary if you use the built-in function.

average = mean( y )

fprintf('the average of this list is %f\n', average)

%%

count = sum( y < 2, 1 );

disp( ['The number of values less than two is: ', num2str( count )] )

Sign in to comment.

Sign in to answer this question.

Opportunities for recent engineering grads.

Apply Today
## 1 Comment

## Direct link to this comment

https://ch.mathworks.com/matlabcentral/answers/500612-determine-the-number-of-y-values-less-than-the-number-2-0#comment_786739

⋮## Direct link to this comment

https://ch.mathworks.com/matlabcentral/answers/500612-determine-the-number-of-y-values-less-than-the-number-2-0#comment_786739

Sign in to comment.