classdef PortfolioX
properties
name;
anzahl=0;
myValue=0;
handeln;
preis=0;
end
function [this, portfolio1] = setAnzahl(this, portfolio1, AktienAnzahl, AktienPreis)
....
this.preis = AktienPreis;
portfolio1.value = AktienAnzahl;
...
end
end
function StartTrading(DDD, Portfolio)
%if text.mat
load test.mat
%end
%Aktie = DDD;
DDD.handeln = 'buy';
%Anzahl an Aktien die gehandelt werden und deren aktueller Preis
[DDD, Portfolio] = setAnzahl(DDD, Portfolio, 200, 5);
save test.mat
load test.mat
现在我做了以下事情:
StartTrading(DDD, Portfolio)
我的预期,他们有更新的值(preis = 50和handeln ='buy')。 我的错是什么?谢谢!
答案 0 :(得分:0)
您已在MATLAB中创建了一个值对象。将这些对象传递给函数时,会为它们创建一个副本。您可以在函数内修改这些副本。除非您返回这些副本,否则您只能在函数外部使用未修改的原始对象。
您可以从函数返回对象并将它们分配回相同的变量,或者通过继承handle来使用handle对象。请参阅比较http://www.mathworks.com/help/matlab/matlab_oop/comparing-handle-and-value-classes.html
处理句柄和值类的文档