Diff does not work with symmatrix

11 ビュー (過去 30 日間)
GIOSUÉ
GIOSUÉ 2025 年 3 月 14 日
コメント済み: GIOSUÉ 2025 年 3 月 14 日
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 日
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

Community Treasure Hunt

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

Start Hunting!

Translated by