Create a matrix on the basis of other matrix

1 vue (au cours des 30 derniers jours)
luca
luca le 14 Oct 2019
Commenté : Fabio Freschi le 15 Oct 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 commentaires
Walter Roberson
Walter Roberson le 14 Oct 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 le 14 Oct 2019
Modifié(e) : luca le 14 Oct 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

Connectez-vous pour commenter.

Réponse acceptée

Fabio Freschi
Fabio Freschi le 14 Oct 2019
Modifié(e) : Fabio Freschi le 14 Oct 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 commentaires
Walter Roberson
Walter Roberson le 15 Oct 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 le 15 Oct 2019
Me neither! but I kept all steps separated to that the OP can pick the parts of his choice

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange

Tags

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by