Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

how to find the number of 1 in a single column?

Asked by Sivakumaran Chandrasekaran on 5 Sep 2012

My input is

0 0 0 0 1 0 0 1 1 0 0 0 1 0

I should find how many 1 is present

2 Comments

Azzi Abdelmalek on 5 Sep 2012

is it a string ?

Azzi Abdelmalek on 5 Sep 2012

what is the real question?

Sivakumaran Chandrasekaran

Products

6 Answers

Answer by José-Luis on 5 Sep 2012
Edited by José-Luis on 5 Sep 2012
your_answer = sum(your_input)

0 Comments

José-Luis
Answer by Azzi Abdelmalek on 5 Sep 2012
 c='0 0 0 0 1 0 0 1 1 0 0 0 1 0'
 sum(str2num(c))

0 Comments

Azzi Abdelmalek
Answer by Jan Simon on 5 Sep 2012
Edited by Jan Simon on 5 Sep 2012

If it is a string:

c = '0 0 0 0 1 0 0 1 1 0 0 0 1 0';
s = sum(c == '1');
% or:
s = length(strfind(c, '1');

if it is a numeric vector:

c = [0 0 0 0 1 0 0 1 1 0 0 0 1 0];
s = sum(c);  % as Jose-Luis has suggested already
% or:
s = nnz(c);

0 Comments

Jan Simon
Answer by Sivakumaran Chandrasekaran on 5 Sep 2012

Thanks for all replies...

1 1

     1     2
     3     1
     2     1
     3     1
     1     2
     3     2
     2     1
     3     1
     2     1
     3     2
     2     2
     3     1
     2     2

0 Comments

Sivakumaran Chandrasekaran
Answer by Sivakumaran Chandrasekaran on 5 Sep 2012

thats my input matrix.. let me take query input as 1 1... now i have to check this 1 1 with all the rows of the given input matrix.. I have find the rows which matches this input.

2 Comments

when i take the first row as the query one, and if i found it is matching with 5th, then output should be displayed as [1,5]

José-Luis on 5 Sep 2012
your_result = find(ismember(your_matrix,[1 2],'rows'))';
Sivakumaran Chandrasekaran
Answer by Matt Tearle on 5 Sep 2012
Edited by Matt Tearle on 5 Sep 2012
idx = find(all(bsxfun(@eq,x,y),2));

where x is your matrix and y is your test vector (eg y = x(1,:), in your example). For example

x = randi(4,1000,5);
y = x(3,:);
idx = find(all(bsxfun(@eq,x,y),2))

0 Comments

Matt Tearle

Contact us