Logical Indexing Within a Symbolic Array

2 ビュー (過去 30 日間)
Kamal Premaratne
Kamal Premaratne 2020 年 12 月 30 日
コメント済み: Ameer Hamza 2020 年 12 月 30 日
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.

採用された回答

Ameer Hamza
Ameer Hamza 2020 年 12 月 30 日
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 件のコメント
Kamal Premaratne
Kamal Premaratne 2020 年 12 月 30 日
Fantastic. Thank you so much.
Ameer Hamza
Ameer Hamza 2020 年 12 月 30 日
I am glad to be of help!

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2020 年 12 月 30 日
~isSymType(A, 'constant')
  1 件のコメント
Kamal Premaratne
Kamal Premaratne 2020 年 12 月 30 日
This also works. Thank you very much.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSymbolic Variables, Expressions, Functions, and Preferences についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by