Variable evaluated with "evalin" vanishes
10 ビュー (過去 30 日間)
古いコメントを表示
Hello everyone, I just received Matlab 2014b after working with 2012a and I tried to run my „old“ scripts. Now the problem I encountered was the following: I store some data x using assignin to the ‘base’ workspace. I created a GUI (with guide) which is supposed to (among others) plot the data x in an axis. This is the part of the code which should (and in 2012a DID) plot the data:
function Show_path_CreateFcn(hObject, eventdata, handles)
% hObject handle to Show_path (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
data_laser = evalin('base', 'ld');
plot(data_laser(:,3));
Now here is the strange part: It reads the data from the workspace (I know because when I leave out the semicolon, all numbers are “written out” in the command window) but the plot-function returns an error, telling me that my variable “data_laser” doesn’t exist. Can somebody help me here? Thank you in advance!
3 件のコメント
Stephen23
2015 年 3 月 23 日
Avoid using evalin and eval for passing variables like this. Use guidata or the handles structure instead and you will avoid this problem altogether.
採用された回答
CrazyEngineer
2015 年 3 月 23 日
1 件のコメント
Image Analyst
2015 年 3 月 23 日
No. Never has happened for me. My tag properties have never vanished upon saving, closing, and reopening a fig file with GUIDE. What is the official bug number so I can look it up?
その他の回答 (1 件)
Image Analyst
2015 年 3 月 18 日
OK, good. It's a blessing in disguise. Now you can program it up properly without using functions like evalin(), assignin(), and eval(). See the FAQ for better methods: http://matlab.wikia.com/wiki/FAQ#How_can_I_share_data_between_callback_functions_in_my_GUI.28s.29.3F
4 件のコメント
Guillaume
2015 年 3 月 23 日
@Image Analyst, totally agree with using a better method of sharing data between gui and main code. I just want to correct something:
When you're in the debugger you can only see the local workspace of the specific function that you're in
参考
カテゴリ
Help Center および File Exchange で Creating, Deleting, and Querying Graphics Objects についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!