How can add the rows in n-by-m matrix that have the same indicator in the last column?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Abdulatif Alabdulatif
el 6 de Jun. de 2016
Hi,
How can add the rows in n-by-m matrix that have the same indicator in the last column?
For example: 10-by-3 matrix, the third column is the indecator:
253638 3309 2
223389 3309 2
255968 3309 2
243943 33309 2
245568 63309 1
242490 93309 3
268464 23309 2
272665 53309 1
241206 83309 1
259310 13309 2
I want to add all rows (all values in first column with the same indicator) with ( all values in second column with the same indicator).
0 comentarios
Respuesta aceptada
Jos (10584)
el 6 de Jun. de 2016
X = [253638 3309 2
223389 3309 2
255968 3309 2
243943 33309 2
245568 63309 1
242490 93309 3
268464 23309 2
272665 53309 1
241206 83309 1
259310 13309 2]
OUT = cell2mat(arrayfun(@(k) [sum(X(X(:,3)==k,[1 2]),1) k], unique(X(:,3)),'un',0))
2 comentarios
Jos (10584)
el 6 de Jun. de 2016
Juts modify the function used by arrayfun
OUT = cell2mat(arrayfun(@(k) [sum(X(X(:,3)==k,[1 2]),1) k sum(X(:,3)==k)], unique(X(:,3)),'un',0))
Más respuestas (2)
Azzi Abdelmalek
el 6 de Jun. de 2016
Editada: Azzi Abdelmalek
el 6 de Jun. de 2016
You can use accumarray function
A=[253638 3309 3
223389 3309 2
255968 3309 2
243943 33309 2
245568 63309 1
242490 93309 3
268464 23309 2
272665 53309 1
241206 83309 1
259310 13309 2]
[ii,~,jj]=unique(A(:,3))
out=accumarray(jj,(1:numel(jj))',[],@(x) {sum(A(x,1:2),1)})
out=[ cell2mat(out) ii]
2 comentarios
Walter Roberson
el 6 de Jun. de 2016
That would be tricky to do without one accumarray call per column.
Walter Roberson
el 6 de Jun. de 2016
unique() to find the unique indicators and the number of indicators. Allocate an zero array of appropriate size to hold the results. Loop over the unique indicators finding the rows that match and totaling them and storing that in the results array.
accumarray() is not suitable for your purposes because accumarray cannot operator on row vectors of values.
4 comentarios
Abdulatif Alabdulatif
el 6 de Jun. de 2016
Editada: Abdulatif Alabdulatif
el 6 de Jun. de 2016
Ver también
Categorías
Más información sobre Matrices and Arrays 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!