[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to modify structure fields inside functions
From: |
c. |
Subject: |
Re: How to modify structure fields inside functions |
Date: |
Fri, 6 Apr 2012 12:42:10 +0200 |
On 6 Apr 2012, at 11:23, Bruno Picasso wrote:
> Hi everybody,
>
> I need your help to understand how to modify a structure field inside a
> function. For example:
>
>>> a.b=3
> a =
> {
> b = 3
> }
>
>>> function modify (s)
>> setfield(s,'b',5)
>> endfunction
>
>>> modify(a)
> ans =
> {
> b = 5
> }
>
>>> a.b
> ans = 3
>
>
> Thanks for your kind help
>
> Bruno
that cannot be done,
all functions in the octave/matlab
language have pass-by-value semantics,
so you have to do it like this:
a.b = 3;
function res = modify (s)
setfield (s,'b',5); %% or, equivalently, s.b = 5;
endfunction
a = modify (a);
a.b
ans = 5
c.