help-octave
[Top][All Lists]
Advanced

[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.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]