# sum logical 1's independently for each column

1 view (last 30 days)
Michael Angeles on 11 Feb 2022
Answered: Michael Angeles on 14 Feb 2022
I've attached a sample data from excel.
how can I create a "for loop" to sum each column and give me print out total for each column.
I also need to compare the "length" of the column to the sum of the logical 1's in that column then print out a pass or fail for each column tested.
example:
1 1 1 1
1 1 1 1
1 1 1 0
1 1 1 1
-----------sum
first column = 4 ==length(column) = pass
fourth column = 3 == lenght(column = fail

DGM on 12 Feb 2022
Edited: DGM on 13 Feb 2022
If the inputs are integer-valued, just use all()
A = randi([0 1],5)
A = 5×5
0 0 1 1 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 1
isfull = all(A,1)
isfull = 1×5 logical array
0 0 0 1 0
% if you really need text output for some reason
flmap = {'fail','pass'};
fulllabels = flmap(isfull+1)
fulllabels = 1×5 cell array
{'fail'} {'fail'} {'fail'} {'pass'} {'fail'}
Michael Angeles on 13 Feb 2022
Thanks DGM, I will try this one if it fits the output that we are looking for.

David Hill on 12 Feb 2022
No loop is needed.
s=sum(r);
l=s==size(r,1);
Michael Angeles on 13 Feb 2022
Hi David,
Thanks...Maybe I don't understand...The reason why I want each column to print out pass or fail as part of the output message is to inform the operator immediately that the column checked for a certain message passed or failed. This allows the operator to re-run the test.

Michael Angeles on 14 Feb 2022
Thank you Everyone!!