以下是Matlab的示例代码。它不在八度运行。代码是:
f = figure;
b = uicontrol(f,'Style','pushbutton');
b.Position = [100 100 50 20];
它来自在线文档:https://www.mathworks.com/help/matlab/ref/matlab.ui.control.uicontrol-properties.html
在Octave中,我得到:错误:标量无法用进行索引。
要使其在Octave中运行,必须进行哪些更改?
答案 0 :(得分:2)
MATLAB几年前推出了第二版手柄图形系统(HG2)。八度仍然使用旧系统。
每次看到handle.propery
时,您就是在处理HG2。在原始系统中,我们使用了get(handle,'property')
和set(handle,'property',newvalue)
。请注意,MATLAB不会在不久的将来弃用这种原始语法,将这两种形式与更新版本的MATLAB一起使用是完全有效的。因此,出于兼容性考虑,最好使用set
和get
函数。
因此您可以替换
b.Position = [100 100 50 20];
使用
set(b,'Position',[100 100 50 20]);