问题标签 [matlab-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
69 浏览

matlab - 如何在 Matlab 句柄类中创建“单向依赖”

我对 Matlab 相当陌生,我想知道是否有一种方法可以创建“单向句柄类”。

为了更好地解释,假设我有一个名为 test_class 的类,具有属性“prop1”和“prop2”

我希望将更改应用于 test_1(父)中的属性以影响 test_2(子),但我不希望 test_2 中的更改影响 test_1,所以

有没有办法创造这种“单向依赖”?

提前致谢!

0 投票
1 回答
220 浏览

matlab - 如果它是类的属性,为什么更改表的变量名不起作用?

过去,我一直在广泛使用 Matlab 的table类。这个非常简单的代码,在脚本内或提示符下,按预期工作:

现在,我拥有与a相同table的.propertyhandle class

如果我在命令提示符下执行以下命令,则将zeros其分配给table,但VariableNames保留其默认值,即{'Var1', 'Var2'}等。

甚至tc.testTable.Properties.VariableNames = varNames不会改变它们。

这是一个错误,还是我错过了什么?(我正在使用 Matlab R2017b)

0 投票
0 回答
42 浏览

matlab - 在从对象方法调用的 Simulink 工作表中保留交互性

假设我在 Simulink 中设置了一个仿真,它由三个块组成:输入(From Workspace块)、模型计算(S-function块)和结果(Outport)。在我的课堂上,我对输入数据做了很多预处理,这里没有展示。然后,我将 Input 块指向使用inputArray,这是我的类的一个属性。

我可以从命令提示符轻松启动模拟运行。

但是,如果我使用一些设置(例如,不同的求解器)并在 Simulink 中按Run,它不起作用,因为数据不在base工作区中。即,我失去了与 Simulink 的交互性。

关于如何解决这个问题的任何想法?到目前为止,我想出的唯一解决方法writePropertiesToBaseWorkspace是编写一个附加方法(如),它将类转换properties为变量,使用assignin().

0 投票
1 回答
555 浏览

matlab - 将类转换为结构体并存储在 .mat 文件中 - MATLAB

我有一个类,它具有一些属性,它们是其他类的对象,当我将类转换为结构并检查数据时,所有属性的完整信息都存在。但是在将其存储到 .mat 文件后,当我加载数据时,作为其他类实例的属性消失了!数据字段为此为空。有人可以帮忙吗?

0 投票
1 回答
43 浏览

matlab - Matlab类动态填充一个属性

我正在尝试动态填充 Matlab 类中的属性。我将向量传递给方法函数,然后计算各种参数。我想在 for 循环中填充属性,请参见代码示例。OwnClassFunction 只是类中另一个函数的示例,但在代码示例中没有实现。我怎样才能正确地做到这一点?

如果我尝试这样的事情

我收到错误消息Subscripted assignment dimension mismatch

0 投票
1 回答
82 浏览

matlab - 删除图形基元的 MATLAB 子类

我正在尝试在 MATLAB 2017b 中创建一个类似于 Line 对象类的类,但析构函数有问题。我想与其他图形对象实现类似的行为,当删除句柄时不再引用该对象,如下例所示:

如果包含线的图形l1现在已关闭,则变量显示它l1正在引用已删除的对象:

我创建了以下类:

如果包含圆形对象的图形是闭合的,则该线被删除,但圆形对象仍然存在。有没有办法同时删除对圆对象的引用?

0 投票
1 回答
40 浏览

matlab - MATLAB:如何制作名称与关键字相同的属性?

在这篇文章(https://blogs.mathworks.com/loren/2012/07/16/who-what-why-but-not-this/)中,靠近底部的 Loren 说类属性可以与关键字相同。然而,这怎么可能?如果您编写 classdef 脚本,任何尝试在属性块中使用关键字(包括类关键字,如“events”)都会出现红色语法错误。她误会了吗?我问是因为我真的希望属性名称成为特定应用程序的关键字。

0 投票
1 回答
123 浏览

c++ - 从 MAT 文件中读取 C 应用程序中的自定义类

我想在 C++ 独立应用程序的 MAT 文件中访问自定义 MATLAB 类的属性。自定义类是在 MATLAB 中创建的类,如下所示:

此类的一个实例现在保存到一个 MAT 文件中,并且应该由一个独立的 C 应用程序访问。

显然,MATLAB 提供了一个用于在 C 应用程序中读取 MAT 文件的。这适用于“普通”类型,并且 API 似乎提供了mxGetProperty访问自定义对象的功能。但是,如果我尝试使用此函数运行一个最小示例,它会失败并在management.cpp:671. 最小的例子是:

仔细查看文档会发现限制: mxGetProperty不支持独立应用程序,例如使用 MATLAB 引擎 API 构建的应用程序。

是否有任何其他可能customClass从独立的 C++ 应用程序访问 MAT 文件中的 a ?

0 投票
1 回答
82 浏览

matlab - “OOP”和“功能”方法调用语法之间的区别

这个解释inputParser类使用的页面上,

我们看到inputParser示例中的每个方法调用都具有以下形式

代替

例如

代替

pif 的实例在哪里inputParser

我会说这使得它不清楚addRequired来自哪里,而不必which在调用它之前搜索它或代码中的实例化行。在addRequired任何情况下都可以使用中断封装,这似乎与您最初引入 OOP 所希望的完全相反。

我怀疑有充分的理由牺牲可读性并以这种特殊方式编写文档。

所以我的问题是, MATLAB 中的“功能”和“OOP”语法之间有什么实际区别吗?

0 投票
1 回答
40 浏览

matlab - Matlab内置对象的方法

这两个调用序列get(a) 和 a.get()有什么区别?