How many times each element of an array have the 1 value after n times assigned different logical values?
1 view (last 30 days)
Show older comments
Thao Linh Tran
on 21 Sep 2018
Commented: Thao Linh Tran
on 21 Sep 2018
I have n same size matrices containing different logical values such as A1, A2, A3 matrices. It also can be considered that a matrix_A was assigned n times with different logical values 1 and 0. Please help to point out how to count the number of times each elements of this A matrix having 1 value. Any suggestion would be much appreciated!
A1 = 1 0 0 1 0 1 0
0 1 0 1 0 0 0
0 1 1 0 0 1 0
0 1 1 0 1 0 1
A2 = 1 0 0 0 0 1 0
0 1 0 0 0 0 0
0 1 1 1 0 1 0
0 1 1 1 1 0 1
A3 = 0 0 0 0 0 1 1
0 1 1 1 1 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 1
1 Comment
Accepted Answer
Stephen23
on 21 Sep 2018
Edited: Stephen23
on 21 Sep 2018
Simple: use one 3D array:
A = cat(3,...
[1 0 0 1 0 1 0
0 1 0 1 0 0 0
0 1 1 0 0 1 0
0 1 1 0 1 0 1],...
[1 0 0 0 0 1 0
0 1 0 0 0 0 0
0 1 1 1 0 1 0
0 1 1 1 1 0 1],...
[0 0 0 0 0 1 1
0 1 1 1 1 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 1]);
And then:
>> sum(A,3)
ans =
2 0 0 1 0 3 1
0 3 1 2 1 0 0
0 2 2 1 0 2 0
0 2 2 1 2 0 3
Note: if your arrays are in one cell array C then you can easily conver this into a 3D array:
A = cat(3,C{:});
If you have lots of separate variables, then you need to fix your code design.
More Answers (1)
Fangjun Jiang
on 21 Sep 2018
Constructing your data as 3d matrix will make it easy.
A(1,:,:) =[ 1 0 0 1 0 1 0
0 1 0 1 0 0 0
0 1 1 0 0 1 0
0 1 1 0 1 0 1];
A(2,:,:) = [1 0 0 0 0 1 0
0 1 0 0 0 0 0
0 1 1 1 0 1 0
0 1 1 1 1 0 1];
A(3,:,:) = [0 0 0 0 0 1 1
0 1 1 1 1 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 1];
m=4;
n=5;
sum(A(:,m,n))
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!