class - 为什么属性不从类方法中获取新值?

标签 class matlab properties

<分区>

我正在尝试更多地了解 Matlab 类及其属性。这是我创建的测试类:

classdef Test    
    properties
         % Properties of the network type
        some_var
    end

    methods
         function N = Test()
         end

        function change_var( N, val )
             N.some_var=val;
        end
    end
end

现在,我创建此类的一个实例,并调用“change_var()”...

>> a=Test;
>> a.change_var(2);
>> a.some_var

ans =

     []

为什么属性“some_var”在赋值中没有取值“val”?

最佳答案

Test 类已定义为 value-class as opposed to a handle class .实际上,当您调用 a.change_var 时,a 是按值传递的。要将更改存储到 some_var 属性,请执行以下操作:

>> a = Test;
>> a = a.change_var(2);

另一种方法是使 Test 成为句柄类,在这种情况下,您问题中的示例将按您的预期工作。为此,通过将类定义的第一行更改为以下内容来继承 handle 类:

classdef Test < handle

关于class - 为什么属性不从类方法中获取新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8086765/

相关文章:

Python 属性和字符串格式

c# - 编译时由设计器重置属性

Swift UISearchbar 如何搜索类的属性

arrays - 在 MATLAB 中保存用户定义的类

java - 声明为 Final 的经典变量是否包含与非 Final 变量不同的内存段?

matlab - Matlab eig 是否总是返回排序值?

matlab - 从 Windows 命令行向编译为 .exe 的 Matlab 函数提供输入参数

excel - Matlab:默认打开文件 'outside Matlab'

java - 将属性转换为输入流?

android - 为什么我的资源在我的Android项目中突然无法解析?