Matlab OOP:如何更新对象的属性

Matlab OOP:如何更新对象的属性,matlab,oop,Matlab,Oop,现在我做以下几点: 构建对象DDD和对象公文包 我开始开始交易(DDD,投资组合) 结果:对象DDD和投资组合的属性值与 建造的 我所期望的是,他们已经更新了值(preis=50,handeln='buy')。 我犯了什么错?谢谢大家! 您已经在MATLAB中创建了一个值对象。将这些对象传递给函数时,将为它们创建一个副本。这些副本由您在函数内部修改。除非返回这些副本,否则函数外只有未修改的原始对象 您可以从函数中返回对象并将它们赋回相同的变量,也可以通过从handle继承来使用handle对象。

现在我做以下几点:

  • 构建对象DDD和对象公文包
  • 我开始
    开始交易(DDD,投资组合)
  • 结果:对象DDD和投资组合的属性值与 建造的
  • 我所期望的是,他们已经更新了值(preis=50,handeln='buy')。
    我犯了什么错?谢谢大家!

    您已经在MATLAB中创建了一个值对象。将这些对象传递给函数时,将为它们创建一个副本。这些副本由您在函数内部修改。除非返回这些副本,否则函数外只有未修改的原始对象


    您可以从函数中返回对象并将它们赋回相同的变量,也可以通过从handle继承来使用handle对象。参见在

    中比较句柄和值类的文档,也许您可以考虑将值声明为依赖属性,每次检索时都自动更新该值。在这里看到更多:嘿,伙计们!我阅读了所有关于句柄和值的内容,尝试了两种方法。没什么区别。你能给我更多关于如何使我的代码工作的细节吗?那太好了。将函数签名更改为函数[DDD,portfolio]=StartTrading(DDD,portfolio)。调用时,请提供与rhs相同的lhs参数。它有效。这是有道理的。我需要说它应该保存在哪里。谢谢你,祝你有一个很棒的星期!(很遗憾,我不能给你+1,因为我没有15个代表:D
    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