Output cell values and column number for matrix with specific values
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
I have a 105 x 13 matrix where the first two columns represent an identifier and columns 3:13 have values either 0 or 1. What I'd like to do is output the first two columns, and then the column number for cells that have a value of 1. I'd like the column numbering to start at column 3, however, so something that is in actual column 13 should have the value 11.
For example, if this is my matrix A I want to produce B:
A = [ 1 128 1 0 0 0 0 0 0 0 0 0 0
1 129 0 1 1 1 0 1 1 0 0 0 1
1 130 1 0 1 0 0 0 0 1 0 0 0
1 149 0 0 0 0 1 0 1 1 0 0 0
1 150 1 1 0 0 1 1 1 0 0 0 0
1 154 1 1 1 1 1 1 0 0 1 1 1]
% I'd like to produce a matrix of the "locations" of the 1 values in
% columns 3:13.
B =
[1 128 1
1 129 2
1 129 3
1 129 4
1 129 6
1 129 7
1 129 11
1 130 1 . . ]
0 comentarios
Respuestas (2)
Voss
el 18 de Abr. de 2022
A = [1 128 1 0 0 0 0 0 0 0 0 0 0
1 129 0 1 1 1 0 1 1 0 0 0 1
1 130 1 0 1 0 0 0 0 1 0 0 0
1 149 0 0 0 0 1 0 1 1 0 0 0
1 150 1 1 0 0 1 1 1 0 0 0 0
1 154 1 1 1 1 1 1 0 0 1 1 1];
B = A(:,[1 2]);
A(:,[1 2]) = [];
[c,r] = find(A.');
B = [B(r,:) c]
0 comentarios
Stephen23
el 19 de Abr. de 2022
Editada: Stephen23
el 19 de Abr. de 2022
Without changing the input matrix A:
A = [1,128,1,0,0,0,0,0,0,0,0,0,0;1,129,0,1,1,1,0,1,1,0,0,0,1;1,130,1,0,1,0,0,0,0,1,0,0,0;1,149,0,0,0,0,1,0,1,1,0,0,0;1,150,1,1,0,0,1,1,1,0,0,0,0;1,154,1,1,1,1,1,1,0,0,1,1,1]
M = A(:,3:end).';
[C,R] = find(M);
B = [A(R,1:2),C]
0 comentarios
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!