How to make function assign variables that will stick around after the function is done running?

 Akzeptierte Antwort

Have it return the structure ‘car’ as an output:
function car = test(x)
car.color = x;
end
%
car = test('red')
produces:
car =
color: 'red'

8 Kommentare

but "car" doesn't exist anymore after the function has ran :( i want it to still be stored somewhere in the memory
i guess car = test('red') works ... i think <.<
edit: nope, running another function like
function car = test(x)
car.make = x;
end
%
car = test('mazda')
removed color and just leaves "make"
I need to be able to apply functions to the same structure to pile on attributes
Try this:
car = struct('make',[],'model',[],'color',[],'year',[]);
%
function y = test1(x)
car(1).color = x;
y = car;
end
%
function y = test2(x)
car(1).make = x;
y = car;
end
%
y = test1('red');
y = test2('Mazda');
%
car
produces:
car =
make: 'Mazda'
model: []
color: 'red'
year: []
errrr, no, still doesn't assign anything for some reason :<
make: []
model: []
color: []
year: []
It did for me. Did you copy-paste-run the code I posted? (I’m running R2015a, but it should run on all recent releases.)
Post the code you’re running if it’s different from what I posted.
Run my code in a single script file. You may be inadvertently clearing the structure by running it in the Command Window.
ah, i see, that worked! Thank you :]

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graphics Performance finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by