Logical Indexing Within a Symbolic Array

4 vues (au cours des 30 derniers jours)
Kamal Premaratne
Kamal Premaratne le 30 Déc 2020
Commenté : Ameer Hamza le 30 Déc 2020
Suppose I have a symbolic array like
A = [0 0 0 w7 0 0;
0 0 0 0 w9 0;
0 w3 0 0 0 0;
0 0 w5 0 0 0;
w1 0 w6 w8 0 0;
w2 w4 0 0 w10 0];
where w1, ..., w10 are symbolic real variables. I would like to generate a "binary" array which identifies where the symbolic variables w1, ..., w10 are located, meaning that the output should be
A_bin = [0 0 0 1 0 0;
0 0 0 0 1 0;
0 1 0 0 0 0;
0 0 1 0 0 0;
1 0 1 1 0 0;
1 1 0 0 1 0];
Is there a way MATLAB could generate A_bin from A?
Thank you.

Réponse acceptée

Ameer Hamza
Ameer Hamza le 30 Déc 2020
Try this
syms w1 w2 w3 w4 w5 w6 w7 w8 w9 w10
A = [0 0 0 w7 0 0;
0 0 0 0 w9 0;
0 w3 0 0 0 0;
0 0 w5 0 0 0;
w1 0 w6 w8 0 0;
w2 w4 0 0 w10 0];
A_bin = ~isAlways(A==0)
or
A_bin = ~isnan(A./A)
  2 commentaires
Kamal Premaratne
Kamal Premaratne le 30 Déc 2020
Fantastic. Thank you so much.
Ameer Hamza
Ameer Hamza le 30 Déc 2020
I am glad to be of help!

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 30 Déc 2020
~isSymType(A, 'constant')
  1 commentaire
Kamal Premaratne
Kamal Premaratne le 30 Déc 2020
This also works. Thank you very much.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Operators and Elementary Operations dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by