看板 MATLAB 關於我們 聯絡資訊
小弟是個matlab新手 我將一個A變數帶入至副程式 並利用回傳的值在主程式中重新計算一個新的A並再帶入副程式 因為A在主程式中會利用迴圈進行疊加 每當有新的回傳值就要計算新的A 所以我在每次重新計算A之前用A=[0 0 0 0]的方式來重設A的值 但只要多了這個重設的動作就會讓matlab在執行時停在busy狀態 無法手動停止,只能強制關閉程式 想請問造成的原因或是有其他能重設A的方式嗎? 附上程式: while settol<trytol && nfunc2<=5 u= MySimplex5(Array2,test,p,q); test=[0 0 0 0]; %只要重設test就會卡在busy for e=1:4 for v=1:5 h=u(e,1)*p(v)^2+u(e,2)*p(v)+u(e,3); test(e)=test(e)+((abs(h-q(v)))^2)/5; end end trytol=min(test); o=find(test==min(test)); z=u(o,:); Array2=u; nfunc2=nfunc2+1; end -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.224.23.199
ry3298:''clear A''??? 09/08 15:55
我在主程式加入clear A以及重設A=[0 0 0 0],一樣處在busy 若只有clear A,則後面的 A=A+... 因為沒有宣告A而無法執行 ※ 編輯: Saint1225 來自: 36.224.23.199 (09/08 16:23) ※ 編輯: Saint1225 來自: 36.224.23.199 (09/08 17:56)
immomo808:zeros? 09/09 11:14
ejialan:為什麼要重設test 你的test部分看起來像疊代 09/09 13:35
ejialan:把test清掉他就一直停在疊代一次 busy是因為無窮迴圈 09/09 13:36