How many times each element of an array have the 1 value after n times assigned different logical values?
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Thao Linh Tran
il 21 Set 2018
Commentato: Thao Linh Tran
il 21 Set 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 Commento
Risposta accettata
Stephen23
il 21 Set 2018
Modificato: Stephen23
il 21 Set 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.
Più risposte (1)
Fangjun Jiang
il 21 Set 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))
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!