我已经定义了一个包含7个字段的数据结构data
。其中两个字段为:
n = 4;
data = struct();
data.Aeq = zeros(n);
data.beq = zeros(n,1);
m =3;
现在,还有另一个函数ul(data,m)
,我将data
和m
作为输入传递。在ul()
内,我将矩阵Aeq
的一个组件修改为:
data.Aeq(m,m) = 1;
在我检查data.Aeq
时运行整个代码后,当我修改了组件时,它仍然是零矩阵。我做错了吗?
答案 0 :(得分:3)
在函数内修改的变量不会在函数外部更改。您应该返回数据作为函数ul的输出。例如:
function data=ul(data,m)
data.Aeq(m,m) = 1
end
n = 4;
data = struct();
data.Aeq = zeros(n);
data.beq = zeros(n,1);
m =3;
data = ul(data,m)
data.Aeq现在应该正确修改。