对于m文件中的MATLAB GUI,我想调用一组变量。我已将变量标记为axes1,axes2,axes3,....... axes125。我怎么能在循环中调用它?有可能吗?
L = imread('white.jpg','jpg');
set(project.cantStop,'CurrentAxes',project.axes1);
set (imshow(L));
参见代码
set(project.cantStop,'CurrentAxes',project.axes1);
我想为所有125个变量设置相同的方式
答案 0 :(得分:0)
使用单元格数组存储轴'标记为字符串并将其用作handles
的字段名,如下所示:
%// Cell arary of strings wih the axes's tags
axes_list = {'axes1','axes2','axes3'};
%// For demo on how to use the cell array, use it to choose the axes with
%// tag - `project.axes2`
axes(project.(axes_list{2}));
因此,您可以使用for循环遍历您的案例的轴,如下所示 -
for k = 1:numel(axes_list)
set(project.cantStop,'CurrentAxes',project.(axes_list{k}));
end
作为类似于您尝试使用示例代码实现的内容的示例,您可以在轴上显示一系列图像。对于演示,如果您想要在GUI的三个轴上显示一组三个图像,请设想。
%// List of image filenames as a cell array
files_list = {'p1.jpg','p2.jpg','p3.jpg'};
%// List of axes tags as a cell array of strings
axes_list = {'axes1','axes2','axes3'};
%// Show those three images on three different axes of the GUI
for k = 1:numel(files_list)
L = imread(files_list{k},'jpg');
axes(project.(axes_list{k}));
imshow(L);
end