Create a matrix on the basis of other matrix

2 visualizaciones (últimos 30 días)
luca
luca el 14 de Oct. de 2019
Comentada: Fabio Freschi el 15 de Oct. de 2019
Hi given a vector
SPI= [2 3 4 8 11 13 14 15 16 19 20];
and the array
AA= [1 2 3 4 0 11 15;
0 0 0 8 13 16 0;
0 0 0 0 0 18 0;
0 0 0 0 0 19 0;
0 0 0 0 0 20 0];
I want to create a matrix DD that is AA but with just the element inside SPI. So:
DD = [ 2 3 4 0 11 15;
0 0 8 13 16 0;
0 0 0 0 0 0;
0 0 0 0 19 0;
0 0 0 0 20 0];
may someone help me?
  2 comentarios
Walter Roberson
Walter Roberson el 14 de Oct. de 2019
I notice that you delete the first column of AA as it is left without any elements from SPI. Why are you not also deleting the all-zero row 3 ? Or if the rule is that the first row has to contain an element from SPI, why are you not deleting the column [0; 13; 0; 0; 0] ? What are the rules?
luca
luca el 14 de Oct. de 2019
Editada: luca el 14 de Oct. de 2019
the array SPI could vary and contain all the elements of AA, that instead is fixed. So depending on the value inside SPI I want to derive DD.
Sorry for the third column, was my mistake! now it's fixed

Iniciar sesión para comentar.

Respuesta aceptada

Fabio Freschi
Fabio Freschi el 14 de Oct. de 2019
Editada: Fabio Freschi el 14 de Oct. de 2019
% your data
SPI = [2 3 4 8 11 13 14 15 16 18 19 20];
AA = [1 2 3 4 0 11 14 15;
0 0 0 8 13 16 0 0;
0 0 0 0 0 0 0 0;
0 0 0 0 0 19 0 0;
0 0 0 0 0 20 0 0];
% mask
iMask = ismember(AA,SPI);
% matrix DD with zeros
DD = AA.*iMask;
% now you can filter out the rows and cols of all zeros
DD = DD(:,any(iMask,1)); % cols filter
DD = DD(any(iMask,2),:); % rows filter
  6 comentarios
Walter Roberson
Walter Roberson el 15 de Oct. de 2019
Fabio's suggested code will eliminate the row 0 0 0 0 0 0;
I do not understand at the moment why that row is being kept in the desired solution.
Fabio Freschi
Fabio Freschi el 15 de Oct. de 2019
Me neither! but I kept all steps separated to that the OP can pick the parts of his choice

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by