作者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