MATLAB图形移位图水平

时间:2013-03-18 06:27:41

标签: matlab matlab-figure

我有一个图(不使用plot命令),其中xdata存储为单元格数组(而不是矩阵)。 我想要做的是水平移动绘图,这可以通过向xdata的每个元素添加一个常量值或移动x轴而不影响绘图来完成。

我无法这样做,非常感谢任何帮助。顺便说一句,我对MATLAB的了解非常有限。

这是我尝试过的,我似乎遇到了错误: set(findobj('type','line','color','r',),'xdata',new)

其中'new'是与'xdata'尺寸相同的另一个单元格数组。但是我不明白为什么这会导致错误:“转换为单元格不可能”

1 个答案:

答案 0 :(得分:0)

首先,get(findobj('type', 'line', 'color', 'r',),'xdata')返回单元格数组的原因是图中有多条红色线条。如果单击图形菜单中的白色箭头图标,选择其中一行,并调用get(gco,'xdata'),则会看到每行的xdata - 属性仍然是正常的数字数组

为了设置图形对象列表的属性,您需要将xdata放入大括号中(参见documentation of the set command):

 horizontalShift = 100;
 old = get(findobj('type', 'line', 'color', 'r',),'xdata');
 new = cellfun(@(x)x+horizontalShift,old,'UniformOutput',false);

 set(findobj('type', 'line', 'color', 'r',),{'xdata'}, new)