Diff does not work with symmatrix

Consider the following very simple example:
syms a x [1,1] matrix
diff(x .^ (symmatrix(eye(1)) - a), x)
ans = 
The output of the function shoud be simply:
(symmatrix(eye(1)) - a)*x.^-a
while instead is returned exactly the same command of the input.
Is it a bug? Do you know any turn around?
Thank you

1 件のコメント

Torsten
Torsten 2025 年 3 月 14 日
What is your real application ?

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

 採用された回答

Matt J
Matt J 2025 年 3 月 14 日
編集済み: Matt J 2025 年 3 月 14 日

0 投票

Element-wise exponentiation is not a standard matrix algebra operation. I imagine it is for that reason that symmatrix.diff() doesn't support it. Workaround:
syms a x [3,3]
F_vec = reshape(x .^ (eye(3) - a), [], 1);
dF_vec = jacobian(F_vec, x(:));
dF = reshape(diag(dF_vec), 3, 3)
dF = 

1 件のコメント

GIOSUÉ
GIOSUÉ 2025 年 3 月 14 日
Thank you for your answer.

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

その他の回答 (0 件)

製品

リリース

R2024b

タグ

質問済み:

2025 年 3 月 14 日

コメント済み:

2025 年 3 月 14 日

Community Treasure Hunt

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

Start Hunting!

Translated by