我是一名本科生,在做我最后的matlab项目,我必须设置许多当前打开的图形对象的位置。我不能单独调用它们,也不能通过使用索引并将它们放在循环中来调用所有句柄。有没有办法通过一个或两个命令或一个可以执行此操作的函数来设置多个图形对象的位置?
答案 0 :(得分:4)
SET函数允许您输入要操作的图形句柄向量以及属性名称和值的单元格数组,结构和属性/值对的组合,以便您可以修改多个属性一个函数调用中的多个对象。
例如,假设您创建了4组轴,这些轴全部堆叠在一起:
hAxes1 = axes();
title('Axes 1');
hAxes2 = axes();
title('Axes 2');
hAxes3 = axes();
title('Axes 3');
hAxes4 = axes();
title('Axes 4');
您可以通过一次调用SET为每组轴设置一个新位置,如下所示:
hVector = [hAxes1; hAxes2; hAxes3; hAxes4]; %# Vector of graphics handles
propertyCell = {'Position'}; %# Cell array containing the property name
valueCell = {[0.1 0.6 0.3 0.3]; ... %# 4-by-1 cell array containing the new
[0.6 0.6 0.3 0.3]; ... %# values for the axes positions
[0.1 0.1 0.3 0.3]; ...
[0.6 0.1 0.3 0.3]};
set(hVector,propertyCell,valueCell); %# Set the new positions
你应该在你的图窗口看到这个: