[問題] symbolic下跑回圈

看板MATLAB作者 (好聽木琴)時間12年前 (2011/11/17 15:01), 編輯推噓5(506)
留言11則, 4人參與, 最新討論串1/1
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

11/17 16:03, , 1F
刪掉 p=zeros(1,5)
11/17 16:03, 1F

11/17 16:55, , 2F
還是不行內..
11/17 16:55, 2F

11/17 20:17, , 3F
p = zeros() 不要打
11/17 20:17, 3F

11/17 20:19, , 4F
你的for是k 下面是i?
11/17 20:19, 4F
sorry已修正 變數都是i... 試過p=zeros() 還是不行 ※ 編輯: snaredrum 來自: 68.48.173.107 (11/18 14:12)

11/18 14:27, , 5F
p=sym(zeros(1,5));
11/18 14:27, 5F

11/18 17:00, , 6F
我隨便跑沒什麼問題 你貼code出來吧
11/18 17:00, 6F
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)

11/19 18:03, , 7F
你前面宣告zeros(1,5),又怎麼放<1x5 sym> ???
11/19 18:03, 7F

11/19 18:03, , 8F
除非宣告完轉成sym
11/19 18:03, 8F

11/20 14:31, , 9F
請問宣告zeros(1,5) 後 如何轉成sym ?
11/20 14:31, 9F

11/20 16:35, , 10F
參考5F的方法
11/20 16:35, 10F

11/22 13:36, , 11F
感謝R大根ok大的指教..清楚了..
11/22 13:36, 11F
文章代碼(AID): #1EnB5ODK (MATLAB)