MATLAB 类对象未更新

2024-04-09

我正在编写一个简单的 MATLAB 类,它具有一些属性和一个方法。类的构造函数使用默认值初始化属性。类的方法在类被构造之后获得额外的输入以更新类属性。

classdef classTest
    properties
        p1
        p2
        p3
        p4
    end

    methods

        function obj = classTest()
            obj.p1 = 0;
            obj.p2 = 0;
            obj.p3 = [];
            obj.p4 = '';
        end

        function obj = updateSomeProperties( obj, p1 )
            obj.p1 = p1;
        end
    end

end

但是,当我调用该类的方法时,它不会更新属性。

>> b = classTest

b = 

  classTest with properties:

    p1: 0
    p2: 0
    p3: []
    p4: ''

>> b.updateSomeProperties(10)

ans = 

  classTest with properties:

    p1: 10
    p2: 0
    p3: []
    p4: ''

>> b % still used the default values.

b = 

  classTest with properties:

    p1: 0
    p2: 0
    p3: []
    p4: ''

我想知道为什么在调用类的方法后,b虽然没有更新updateSomeProperties更新类对象。


问题是你的班级是value作为副本传递的类(甚至传递给它自己的方法)。这是 MATLAB 类的默认行为,因为这就是所有基本 MATLAB 数据类型都是 http://www.mathworks.com/help/matlab/matlab_oop/comparing-handle-and-value-classes.html#brgm8v3。我们可以通过查看您调用的输出来验证情况是否如此updateSomeProperties()。您将看到返回的结果(显示为ans) 包含您期望的修改,但这些更改不存在于您的原始对象中,b。如果您想坚持使用值类,则需要从方法返回新对象,并在调用方法时重新分配变量。

b = classTest();
b = b.updateSomeProperties(10);

你想要的是一个handle始终通过引用传递的类。这允许方法在same对象而不是修改原始对象的副本。

为此,您需要从内置继承handle http://www.mathworks.com/help/matlab/ref/handle-class.html class.

classdef classTest < handle

有句柄类和值类的详细比较在文档中 http://www.mathworks.com/help/matlab/matlab_oop/comparing-handle-and-value-classes.html?refresh=true.

作为旁注,可以简单地在构造函数中指定这些默认值,而不是在构造函数中手动设置所有默认属性值。properties阻止自己。

properties
    p1 = 0;
    p2 = 0;
    p3 = [];
    p4 = '';
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MATLAB 类对象未更新 的相关文章

  • var->myProperty 和 var.myProperty 之间的区别

    我是 Objective C 的新手 我有一些疑问 我发现您可以访问类的属性 例如var gt 我的属性也喜欢那样变量 myProperty 但我不知道2之间有什么区别 我在互联网上搜索了很多 但确实没有找到确凿的答案 抱歉 如果我有拼写错
  • Octave/Matlab:向向量添加新元素

    有一个向量x我必须添加一个元素 newElem 有什么区别吗 x end 1 newElem and x x newElem x end 1 newElem更稳健一些 x x newElem 仅当x是行向量 如果它是列向量x x newEl
  • PHP 将样式表添加到标头

    有没有办法在包含头文件后将样式表添加到标题中 假设我们有这样的代码 class content public stylesheets array public function addStylesheets stylesheets if e
  • 使用 Polyfit 进行垂直线拟合

    这只是一个基本问题 我正在使用拟合线来分散点polyfit 在某些情况下 我的散点具有相同的 X 值并且polyfit无法在其上放置一条线 必须有某种东西可以处理这种情况 毕竟 它只是一个线配合 我可以尝试交换 X 和 Y 然后再画一条线
  • Fortran 03/08(gfortran 编译器)中使用无限多态类型进行数组操作

    我想通过以下方式实现有用的数组操作 添加元素 删除元素 通过可分配 指针 二叉树结构实现不同的实现 class 特征 无限多态性 我使用 gfortran 5 0 应该可以处理这样的功能 我需要它 以免为我使用的每种类型重复相同的代码 这应
  • scala案例类问题

    我有两个关于 案例类的问题 可以用作 case head tail gt 它是如何工作的 意思是 Scala 用于将 List 实例与 case 类进行匹配的流程到底是什么 鉴于我有一个类 MyClass 带有运算符 op 我可以创建一个名
  • 如何从矩阵的每一行中减去一个向量? [复制]

    这个问题在这里已经有答案了 可能的重复 如何将矩阵的每一行除以固定行 https stackoverflow com questions 4723824 how can i divide each row of a matrix by a
  • 使用二进制遮罩遮罩 RGB 图像

    我在 MATLAB 中读入了一个 RGB 图像 M x N x 3 矩阵 我还有一个图像的二进制掩码 M x N 矩阵 对于某些感兴趣的区域来说它只是 0 而其他地方都是 1 我正在尝试找出如何使用该二进制掩码来掩蔽 RGB 图像 我尝试过
  • 访问模型字段内的模型实例

    我有一个模型 事件 它具有用户模型 事件的所有者 的外键 该用户可以使用以下 ManyToManyField 邀请其他用户 invites models ManyToManyField User related name invited u
  • 在 MATLAB 中分析 wav 文件

    所以我有这个钢琴录音 wav 格式 我能够做一个FFT整体记录并识别频率 然而 根据我读过的一些文章 最好将 wav 文件分解为多个窗口 其中每个窗口都包含一个特定的音符 为此 我需要首先绘制时域信号的 功率包络 考虑音符平均能量概念 因此
  • 在 Matlab、VB6 和 VB.NET 程序之间发送消息的最简单方法

    我们正在将一套数据采集和分析例程从 VB6 程序升级为 VB NET VB6 和 Matlab 程序的混合体 我们希望保持系统模块化 单独的 EXE 以便我们可以轻松创建专门的独立分析程序 而无需不断升级大型应用程序 当所有程序都是用 VB
  • MATLAB:解包函数

    我正在与 Mathworks 的某人讨论 unwrap http www mathworks com access helpdesk help techdoc ref unwrap html函数中对于 以外的跳跃容差有一个 bug 并且希望
  • UML三元关联实现java代码[重复]

    这个问题在这里已经有答案了 三元关联是结构关系 指定一个事物的对象连接到其他两个事物的对象 我理解这种关系 但我不知道如何实现显示这三个类之间关联的方法 让我们考虑下面的例子 项目有许多使用特定编程的开发人员 语言促进发展 开发人员使用特定
  • 从彩色背景中提取黑色对象

    人眼很容易辨别black来自其他颜色 但是计算机呢 我在普通的A4纸上打印了一些色块 由于组成彩色图像有青色 品红色和黄色三种墨水 所以我设置每个块的颜色C 20 C 30 C 40 C 50 以及其余两种颜色是 0 这是我的源图像的第一列
  • 尝试在类中定义静态常量变量

    我正在定义一个变量adc cmd 9 as a static const unsigned char在我的课堂上ADC私人之下 由于它是一个常量 我想我只需在它自己的类中定义它 但这显然不起作用 pragma once class ADC
  • 我应该将 PHP include/require 语句放在 HTML 中的什么位置?

    我在文件中创建了一个 PHP 类 现在我想在 HTML 页面中使用它 我应该把它放在哪里require or includeHTML 页面内的声明 有没有表现在 HTML 的开头或结尾加载它之间的区别 还是根本没有区别 应该是在 PHP 脚
  • 有没有办法在 Visual Studio 或 MATLAB 中“映射”程序执行顺序?

    我所说的 地图 是指我有一个 主 函数 它调用内部的许多其他程序 我希望能够看到哪个文件首先运行 第二个 第三个等等 基本上 我希望能够请参阅这个大型 OOP 设计程序 创建者没有为其制作 UML 类图 中的依赖项列表和顺序 以帮助破译代码
  • 向元素添加类

    像这样 我有两个选项卡 所以当我单击其中一个选项卡时 它是活动的 逻辑的 现在我试图区分活动选项卡和非活动选项卡 但不是使用 css 属性 但我想向单击的选项卡添加特定的类 如下所示 tab1 addClass active 但是 没有什么
  • Moq-ing 类或接口有什么区别?

    我一直在使用moq http code google com p moq 在我的单元测试中模拟对象 我在关于最小起订量的网站上看到它能够模拟类和接口 有一天 我与我的一位同事进行了讨论 他们表示没有理由模拟类 我应该只模拟接口 我对此并没有
  • 数组中 2 个百分位之间的平均元素

    我有 2 个长度为 200 的向量 例如 A 和 B 然后我使用以下方法找到数组 A 的每第二个百分位数 A1 prctile A 1 2 100 1 这样A1是一个长度为50的数组 现在我想找到A1中每两个元素内的A元素的平均值 即A的第

随机推荐

  • SOLR 权限/根据访问权限过滤结果

    例如 我有文档 A B C 用户 1 必须只能看到文档 A B 用户 2 必须只能看到文档 C 是否可以在 SOLR 中执行此操作而不通过元数据进行过滤 如果我使用元数据过滤器 每次访问权限发生变化时 我都必须重新索引 2012 年 2 月
  • Spring 注入 - 访问构造函数中注入的对象

    我有一个资源 Spring bean 它的一些字段是由 Spring 注入的 例如 Repository value appDao public class AppDaoImpl implements AppDao PersistenceC
  • 有没有办法将 __len__ 或 __eq__ 等方法实现为类方法?

    它很容易实现 len self Python 中的方法 以便它处理len inst 像这样的调用 class A object def len self return 7 a A len a gives us 7 您可以定义很多类似的方法
  • 在时尚中排除网站的子文件夹?

    有没有办法使用 Stylish 排除网站的子文件夹 moz document domain www website com 将会影响 website com 的所有页面 问题是 这个网站还托管一个维基 www website com wik
  • 如何在我的网站上显示我的 Instagram feed?

    我有一个网站 可以显示我的 Instagram 动态 以前我用过 Instagram 遵循 API 用户 自我 媒体 最近 这个 API 使用的是我生成的一次访问令牌 并将其作为变量保存在我的代码中 并且很长一段时间 2 3 年 都没有更改
  • 在 Javascript 中将小数金额转换为文本字符串分数?

    我有一个以数字形式返回的值 可以是十进制数 例如 1 15 但是 我需要格式化所有数字在一个范围内到给定的分数 例如 所有大于 0 但小于 0 2 的数字我想返回 1 8 我已经开始将其作为一系列 if else 语句来执行此操作 但我想知
  • DTO 接口

    我目前正在开始开发一个大型 Web 应用程序 主要包含 Angular SPA 和可以访问后端层的 OData WebAPI 我们正处于早期阶段 并已开始实施第一批课程 包括Model dll它位于公共名称空间中 以便所有层都可以访问它 我
  • Prometheus:如何根据 Consul 标签删除目标

    我的 Prometheus 服务器从 Consul 获取其目标列表 或 服务 用 Consul 的行话来说 我只想监视这些目标的子集 这应该可以通过普罗米修斯的正则表达式机制实现 但我无法正确配置 这是怎么做到的 我已经搜索过网络 但没有一
  • 如果原始值与任何when_表达式都不匹配,则返回原始值

    我的 SQL 导出字段上有一行 并且我试图删除字段中返回的空白值 如果它与姓氏中的 AMA 完全匹配 但是 当我使用当前代码导出文件时 姓氏不带 AMA 的名称将被完全删除 Max Orders ShipFirstName CASE Ord
  • 如何在不编写 20 个 if 语句或创建 20 个列表/字典的情况下进行以下比较?

    这个问题与生物学有关 所以对于那些知道氨基酸和密码子是什么的人来说 那就太棒了 对于那些不明白的人 我已尽力表述 以便您能够理解我在说什么 所以我有一个密码子列表 也可以称为3字母字符串 由以下四个字母的组合组成 A G C T 即AAT
  • 如何使用 jQuery 设置输入框的默认值?

    我想更改输入框的默认值 以便在重置表单时保留该值 我有以下代码 它使用 jQuery 设置一个值 但当按下重置时 该值将变为初始值
  • typescript 对 setState 与用户输入进行反应

    在这个打字稿反应 create react app 的基本示例中 我试图通过用户输入更改state name 有人可以向我展示一个工作示例 我没有找到 或更好的示例 文档在哪里 linter 的 第二个 错误是 54 24 错误 TS232
  • 为什么这个 Snowflake 查询不需要 LATERAL 关键字就可以工作?

    我在雪花中有这样的观点 create or replace view foo as select 1 as id foo 2 as sales from values 1 100 2 200 3 300 和这个用户定义的表函数 https
  • 使用混合模式重新创建 HSV 颜色

    我正在开发一个应用程序 该应用程序创建的图像的色调 饱和度和值根据不同的参数而变化 出于性能原因 单独渲染色调 饱和度和明度组件 然后使用 Photoshop 风格的混合模式 正片叠底 叠加 滤色 色调等 将它们合成在一起是有意义的 我已经
  • 如何使用squire模拟内联requirejs依赖项以进行单元测试?

    我将 requirejs 与内联需求一起使用 例如 define someDep function someDep return someFn function require anotherDep function anotherDep
  • 如何在 Angular 中设置默认页面

    当我请求包含以下 URL 的链接时 出现错误 http xxx 46630 或与此http crmbyzaid azurewebsites net 但当我添加时效果很好 index html 与网址 现在 当我请求时 我想设置部分页面 ap
  • 在 moment.js 中本地化日期和月份 [重复]

    这个问题在这里已经有答案了 如何在 moment js 中本地化当前日期和月份 没有年份 我想要的正是输出moment format LL 但没有年份部分 考虑以下示例 moment locale tr format LL 1 Hazira
  • 如何在单引号字符串中使用变量?

    如何回显单引号内的变量 echo test text here is some test text counter output gt gt FILE 变量在双引号字符串中扩展 但在单引号字符串中不扩展 name World echo He
  • 在设备驱动程序中使用 select()/poll()

    我有一个驱动程序 它可以处理多个 TCP 连接 有没有一种方法可以在给定列表的情况下执行类似于内核中用户空间应用程序 api 的 select poll epoll 的操作struct sock s Thanks 您可能想编写自己的自定义s
  • MATLAB 类对象未更新

    我正在编写一个简单的 MATLAB 类 它具有一些属性和一个方法 类的构造函数使用默认值初始化属性 类的方法在类被构造之后获得额外的输入以更新类属性 classdef classTest properties p1 p2 p3 p4 end