MATLAB 中的文本对象包含水平对齐属性,可以为其指定左对齐、居中对齐或右对齐的值。尝试通过长度相等的对齐向量将此属性分配给字符串和坐标向量无法给出预期的行为。
例如,以下形式的语句:
text([1,1,1]/4,[1,2,3]/4,{'ABC';'BCD';'CDE'})
在长度为 3 double 组指定的 X 和 Y 坐标处显示长度为 3 的 char 对象元胞数组的内容。但是,尝试引入长度为 3 的 char 对象元胞数组来独立指定每个文本元素的水平对齐方式在语法上是无效的;
例如,
text([1,1,1]/4,[1,2,3]/4,{'ABC';'BCD';'CDE'},'HorizontalAlignment',{'left';'center';'right'})
我的问题涉及是否可以以变量方式指定 MATLAB 文本对象的 HorizontalAlignment 属性,而无需借助显式涉及循环和条件的构造。
最佳答案
您无法在创建时分配多个属性值,但是一旦您拥有句柄向量,您就可以使用 set()
的多对多形式像这样:
h = text([1,1,1]/4, [1,2,3]/4, {'ABC';'BCD';'CDE'});
set(h, {'HorizontalAlignment'}, {'left';'center';'right'});
值数组每个对象一行,每个属性一列。
关于matlab:文本的可变水平对齐方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21440457/