[問題] GUI中繪圖 第一次可以跑 第二次不行
我現在有寫一個GUI 裡面有兩個axes 按下RUN(按鍵)後 一次跑兩張圖
而我兩個axes的TAG分別是 BS_plot 和 Optimize_Result
以下是部分程式碼
%------- Solution
[BS BS_Cost Cost_BS_plot
times_plot]=ABC_Optimization(para,para.Employed_Num,para.Onlookers_Num,
para.Scouts_Num,para.Limit_Num,para.times);
%--------------------BS------
plot(findobj('Tag','BS_plot'),times_plot,Cost_BS_plot);
%----------------------
TAG='Optimize_Result';
h=Plot_Arrange(BS,BS_Cost,para,TAG); %此段是自行寫的一個畫圖函數
set(findobj('Tag',TAG),'UserData',BS)
set(findobj('Tag','Run'),'UserData',h)
Time=toc;
set(findobj('Tag','Time2'),'String',[num2str(Time),'s'])
我的time_plot和Cost_BS_plot分別是1x50的陣列
現在問題出在 我第一次按RUN後 我要的兩張圖 plot那張跟 自己寫的那張都有正常顯示
但是我若要跑第二次就會出現
Error using ==> plot
Vectors must be the same lengths.
Error in ==> Arrangement>Run_Callback at 109
plot(findobj('Tag','BS_plot'),times_plot,Cost_BS_plot);
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> Arrangement at 17
gui_mainfcn(gui_State, varargin{:});
Error in ==>
guidemfile>@(hObject,eventdata)Arrangement('Run_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
但是我只要刪除 plot(findobj('Tag','BS_plot'),times_plot,Cost_BS_plot);
以上這行畫圖程式碼 也就是不要畫這張圖時我程式就可以安穩的run 不管我按幾次
都不會出錯
以上錯誤有說我向量長度不相等 但是我有逐次執行過 真的都相等
此點我是確定的 想請問各位大大 我是不是哪裡寫的有問題....
謝謝了
補充一下我所謂的第一次可以跑是指點開fig按run可以 但是再按一次就不行
但是我只要關掉fig再開起來按run就又可以跑
我快被搞瘋掉的 論文就剩這步了 O_Q
再補充 剛剛我使用彈出方式一樣可以順利run 寫成以下方式
figure(2);
plot(times_plot,Cost_BS_plot);
跑起來沒有問題 所以我想數據本身應該是沒錯 就是不知道我上面程式碼錯在哪
拜託各位大大
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.138.143.112
※ 文章網址: http://www.ptt.cc/bbs/MATLAB/M.1399005235.A.249.html
※ 編輯: TRENT0331 (140.138.143.112), 05/02/2014 12:40:07
※ 編輯: TRENT0331 (140.138.143.112), 05/02/2014 12:48:06
推
05/02 20:45, , 1F
05/02 20:45, 1F
→
05/03 02:10, , 2F
05/03 02:10, 2F
→
05/03 14:07, , 3F
05/03 14:07, 3F
→
05/03 14:08, , 4F
05/03 14:08, 4F
→
05/03 14:09, , 5F
05/03 14:09, 5F
→
05/03 14:10, , 6F
05/03 14:10, 6F
→
05/03 20:26, , 7F
05/03 20:26, 7F
→
05/03 20:29, , 8F
05/03 20:29, 8F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章