作者snaredrum (好听木琴)
看板MATLAB
标题[问题] symbolic下跑回圈
时间Thu Nov 17 15:01:41 2011
S(i,j) 是一个给定i,j後 就是一个x的多项式的东西.. 我已经写好成.m file 在那边..
所以我一开始 已经有写个syms x 在前面,宣告x是一个symbolic变数.
现在问题来了,这个已经带x变数的东西不能写在回圈内..
ex:
p=zeros(1,5)
for i=1:5
p(i) = S(i,1);
end
这样就跑不动了 错误讯息如下
??? The following error occurred converting from sym to double:
Error using ==> mupadmex
Error in MuPAD command: DOUBLE cannot convert the input expression into a
double array.
If the input expression contains a symbolic variable, use the VPA function
instead.
我如果用手动的
p=[S(1,1),S(2,1),S(3,1),S(4,1),S(5,1)] 就没问题..
但是其实我需要的 是i=1:100 我不可能这样手动写 太白吃了..
我也找了 VPA
http://www.mathworks.com/help/toolbox/symbolic/vpa.html
可是看不懂!?
可以请先进指教 我该如何 用回圈来跑symbolic的东西吗?
感恩~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 68.48.173.107
1F:→ ejialan:删掉 p=zeros(1,5) 11/17 16:03
2F:→ snaredrum:还是不行内.. 11/17 16:55
3F:推 Raymond0710:p = zeros() 不要打 11/17 20:17
4F:推 Raymond0710:你的for是k 下面是i? 11/17 20:19
sorry已修正 变数都是i... 试过p=zeros() 还是不行
※ 编辑: snaredrum 来自: 68.48.173.107 (11/18 14:12)
5F:推 okgogogo:p=sym(zeros(1,5)); 11/18 14:27
6F:推 Raymond0710:我随便跑没什麽问题 你贴code出来吧 11/18 17:00
sorry~ R大 you are right~~
我发现是我自己没有clear all... 打个clear all清除之前定义的P就可以了.
有点不理解,为什麽先定义P这个向量长度,并且预设内容都是0就不能跑了
反而没有预设P =zeros(1,5)就可以跑? why?
※ 编辑: snaredrum 来自: 68.48.173.107 (11/19 14:50)
※ 编辑: snaredrum 来自: 68.48.173.107 (11/19 14:51)
7F:推 okgogogo:你前面宣告zeros(1,5),又怎麽放<1x5 sym> ??? 11/19 18:03
8F:→ okgogogo:除非宣告完转成sym 11/19 18:03
9F:→ snaredrum:请问宣告zeros(1,5) 後 如何转成sym ? 11/20 14:31
10F:→ Raymond0710:参考5F的方法 11/20 16:35
11F:→ snaredrum:感谢R大根ok大的指教..清楚了.. 11/22 13:36