I cannot remove 0 elements of a symbolic array
2 ビュー (過去 30 日間)
古いコメントを表示
Mohammad Shojaei Arani
2022 年 2 月 1 日
コメント済み: Mohammad Shojaei Arani
2022 年 2 月 1 日
Hello friends!
Consider the following commands
syms x sigma(x)
par=sym('par%d', [1 2],'positive');
sigma(x)=par(1)+par(2)*x;
D_sigma=[sigma diff(sigma) diff(sigma,2) diff(sigma,3)];
D_sigma
nonzeros(D_sigma)
D_sigma(x) =
[par1 + par2*x, par2, 0, 0]
ans(x) =
[par1 + par2*x, par2, 0, 0]
I really have no idea why this does not work!!!!!!!
Any help!
Thanks in advance!
Babak
0 件のコメント
採用された回答
Walter Roberson
2022 年 2 月 1 日
syms x sigma(x)
par=sym('par%d', [1 2],'positive');
sigma(x)=par(1)+par(2)*x;
D_sigma=[sigma diff(sigma) diff(sigma,2) diff(sigma,3)];
D_sigma
DSX = D_sigma(x);
nonzeros(DSX)
The reason you had a problem is that your D_sigma is a symbolic function, not a vector.
3 件のコメント
Walter Roberson
2022 年 2 月 1 日
Your D_sigma was a single function that returns a vector. The function itself is not zero, so nonzeros() does not remove the function.
You should not think of your D_sigma as being a vector of functions. It cannot be indexed into. It is a 1 x 1 object that happens to return a vector (whos size depends upon the input). [Huh, it can return a cell array???)
syms x sigma(x)
par=sym('par%d', [1 2],'positive');
sigma(x)=par(1)+par(2)*x;
D_sigma=[sigma diff(sigma) diff(sigma,2) diff(sigma,3)]
D_sigma([-1 1])
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!