Use of Evalin
2 ビュー (過去 30 日間)
古いコメントを表示
for i=1:str2num(get(handles.nosensorentry_tag,'string'))
set(handles.sensname(i),'string',evalin('base','SensorList.sensorname(i,1)'))
end
I am not able to use loop to get the workspace variable with evalin. Matlab is showing
Error using ==> evalin
Subscript indices must either be real positive integers or logicals.
Is there any way to increment 'i' in evalin statement.
0 件のコメント
採用された回答
Walter Roberson
2012 年 4 月 24 日
names = evalin('base', 'SensorList.sensorname');
for i = 1:str2num(get(handles.nosensorentry_tag,'string'))
set(handles.sensname(i), 'String', names(i,1));
end
0 件のコメント
その他の回答 (2 件)
Daniel Shub
2012 年 4 月 25 日
You need to evaulate the i in the current workspace and not the base:
for i=1:str2num(get(handles.nosensorentry_tag,'string'))
set(handles.sensname(i),'string',evalin('base', ...
['SensorList.sensorname(', num2str(i), ',1)']))
end
0 件のコメント
Jan
2012 年 4 月 25 日
n = str2num(get(handles.nosensorentry_tag,'string'))
for i = 1:n
set(handles.sensname(i), 'string', SensorList.(sensorname{i}));
end
1 件のコメント
Walter Roberson
2012 年 4 月 25 日
I believe the idea is that SensorList is defined in the base workspace but not the current workspace.
参考
カテゴリ
Help Center および File Exchange で Get Started with MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!