I have defined a data structure data
with 7 fields. Two of the fields is as:
n = 4;
data = struct();
data.Aeq = zeros(n);
data.beq = zeros(n,1);
m =3;
Now, there is another function ul(data,m)
that I am passing the data
and m
as inputs. Inside ul()
, I will modify one component of matrix Aeq
as:
data.Aeq(m,m) = 1;
after running whole the code when I am checking data.Aeq
it is still zero matrix while I have modified on component. Am I doing something wrong?
Variables modifed within a function do not change outside of the function. You should return data as the output of function ul. For example:
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 should now be modified correctly.