matlab表达式部分项求和,matlab如何得到符号表达式中某一部分项的系数
matlab如何得到符號表達式中某一部分項的系數
mip版??關注:238??答案:2??懸賞:0
解決時間 2021-01-19 05:05
已解決
2021-01-18 14:17
syms t1 t2 t3;
y=4*sin(t1)*cos(t2)+cos(t1)+sin(t1)*sin(t2)+5*sin(t1)*cos(t2)*sin(t3);
如何得到'sin(t1)*cos(t2)'的系數表達式(4+5*sin(t3))?
最佳答案
2021-01-18 14:35
%從符號表達式中提取某一項的系數
%symExpr為符號表達式,item為字符串目標項
%coef為item的符號表達式系數
function coef=getCoefFromSymExpr(symExpr,item)
charExpr=char(symExpr);
indexItem=strfind(charExpr,item); %獲取存在item項的指標
indexPseudo=union(strfind(charExpr,['(',item]),strfind(charExpr,[item,'^'])); %獲取偽指標
indexItem=setdiff(indexItem,indexPseudo); %獲取真正的item指標
%循環計算各個item位置的系數
itemLen=length(item);
exprLen=length(charExpr);
coef=sym(0);
for i=1:length(indexItem)
index=indexItem(i); %計算當前item項的位置
cache=sym(1); %存儲當前項的系數
if index~=1 && charExpr(index-1)=='*'
indexFront=index-2; %初始化系數項的前指標
while indexFront~=1 && charExpr(indexFront-1)~=' '
indexFront=indexFront-1;
end
cache=cache*sym(charExpr(indexFront:index-2));
end
if index+itemLen~=exprLen && charExpr(index+1)=='*'
indexBack=index+2; %初始化系數項的后指標
while indexFront+itemLen~=exprLen && charExpr(indexBack+1)~=' '
indexBack=indexBack+1;
end
cache=cache*sym(charExpr(index+2:indexBack));
end
coef=coef+cache;
end
end
全部回答
1樓
2021-01-18 15:54
你說的應該是多項式的系數吧,試試sym2poly,查看用法help sym2poly
一般表達式的系數似乎不可用
我要舉報
如果感覺以上信息為低俗/不良/侵權的信息,可以點下面鏈接進行舉報,我們會做出相應處理,感謝你的支持!
點此我要舉報以上信息!
推薦資訊
大家都在看
總結
以上是生活随笔為你收集整理的matlab表达式部分项求和,matlab如何得到符号表达式中某一部分项的系数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SNK《拳皇15》联动支付宝!草薙京、八
- 下一篇: 董明珠放话:今年不裁员 要再招3-5千毕