0

我定义了一个data包含 7 个字段的数据结构。其中两个字段如下:

n = 4;
data = struct();
data.Aeq = zeros(n);
data.beq = zeros(n,1);
m =3;

现在,还有另一个函数ul(data,m),我将dataandm作为输入传递。在里面ul(),我将矩阵的一个组件修改Aeq为:

data.Aeq(m,m) = 1;

在运行整个代码后,当我data.Aeq在组件上进行修改时,它仍然是零矩阵。难道我做错了什么?

4

1 回答 1

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 现在应该正确修改。

于 2015-03-12T12:39:18.203 回答