问题标签 [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.
matlab - 为什么 MATLAB 会删除我的 classdef 中的断点?
我正在尝试在 MATLAB R2011b 中调试我自己没有编写的面向对象的应用程序。为此,我想在classdef
. 据我所知,这是允许的。然而,当我运行应用程序时,断点神秘地消失了。
我已经clear
像这样配置了一个断点:
查看何时clear
被调用。在运行应用程序之前,我使用 dbstatus 检查断点是否存在:
(有问题的断点是列表中的第一个。)当我运行应用程序时,classdef 中的断点在调用第一个 clear 之前消失了:
为了确定断点被清除的位置,我逐渐将断点移动到越来越接近根函数的开头,并找到了有问题的代码行:
果然 - 任何调用cd
,即使是间接调用,都会清除classdef
. 这意味着它run
做的事情完全相同。这是令人愤怒的行为。为什么 MATLAB 会这样做?我怎样才能让它不这样做?
matlab - 在 Matlab 中引用静态函数
对于 MATLAB 中的对象,是否可以在不知道包含包的情况下调用相同类型的静态函数?现在,我发现引用它的唯一方法是使用Package.Whatever.staticfunction()
,但我想通过让它独立于它所在的任何包运行来正确封装该类。
我现在找到的解决方案是:
但这似乎笨拙,缓慢且不正确。有更好的方法吗?
python - 将 MATLAB 中的 GPIB 转换为 PyVISA
我继承了一些用于通过 GPIB 连接对 XYZ 平台进行编程的 MATLAB 代码。为了使其与 Python 中的一些现有代码更兼容,我需要以某种方式对其进行翻译,例如使用 PyVISA 包。我真的很想得到一些帮助!
所以,到目前为止我所做的只是基本的东西,即
由此我可以使用识别命令并正确获取设备的 ID:
那么,知道如何将以下 MATLAB 转换为适当的 PyVISA 命令吗?我最大的问题是我真的不知道如何翻译语法......
matlab - 如何在 MATLAB 路径中添加类
我在文件夹中有 2 个类:
C:\controller\functions\VerifyModel.m
C:\OGVD\prod\KMLP\controller\controllerStatus.m
验证模型.m
控制器状态.m
但是当我运行时controllerStatus.m
,我收到一个错误,因为我使用的类不在路径中。我试过添加C:\controller\functions\@VerifyModel\VerifyModel.m
我能做些什么才能将类添加到路径中?
matlab - 如何验证函数句柄作为输入参数?
我有一个类,它有一个函数句柄作为其properties
.
我想确保输入参数hfun
是一个具有 1 个输入和 1 个输出的函数句柄,否则它应该会出错。如果我可以更具体,我希望这个函数将 Nx3 数组作为输入参数并返回 Nx3 数组作为输出参数。
上面的代码适用于内置函数,f = @sqrt
但如果我尝试放入匿名函数f = @(x) x^(0.5)
,nargout(hfun)
则为 -1,因为它将匿名函数视为[varargout] = f(x)
. 此外,如果您将句柄输入到类方法中,例如f = @obj.methodFun
,它会将函数转换为对和[varargout] = f(varargin)
都返回 -1的形式。nargin
nargout
有没有人想出一种方便的方法来验证函数句柄作为输入参数?与它来自哪种函数句柄无关?
c++ - MATLAB:OOP 调用不同类的函数
我的目标是设计一个使用 MATLAB OOP 在 MATLAB 中编程的可重用引擎。这是我第一次尝试这样做。我想解决的问题如下:我有一个抽象类cPayoffBase
,它定义了未知类型收益的接口。继承cPayoffBase
,我有一个cPayoffCall
实现调用选项的具体类。现在我定义了另一个类cVanillaDerivs
,它接受用户定义的支付对象和执行价格。当我传入用户定义的对象cVanillaDerivs
来计算一些数量时,就会出现异常Index exceeds matrix dimensions.
。我将详细提供代码。
cPayoffBase.m
cPayoffCall.m
cVanillaDerivs.m
命令窗口
在 C++ 中,鉴于我有一个包装类并包装类对象cPayoffBase
,我可以对类中return (*dmPayoff)(dmSpotPrc)
的双返回函数执行类似操作。请让我知道我的错误,如果可能的话,我怎样才能在 MATLAB OOP 中像 C++ 一样实现相同的过程。mfGetDerivPayoff(double dmSpotPrc) const
cVanillaDerivs
matlab - 如何根据Matlab中不同类对象的属性获取依赖属性
请看下面的代码:
Ex_ObjA.m
Ex_ObjBC.m
我尝试执行以下操作:
不成功,因为"Get 方法必须只有一个输入"。所以我可以通过s1.a
toEx_ObjBC
来获得s1.c
?
matlab - 将 container.Map 作为类属性时的奇怪 MATLAB 行为
我创建了自己的类,如下所示:
我的目标是让每个对象都testClass
维护自己的地图。然而,事实证明,整个类只有一个映射对象:所有testClass
访问相同的对象containers.Map
。例如,如果我创建两个对象如下
它最终都a
和b
的地图包含两个键值对:
(key,value) 对 (1,123) 和 (2,321) 都出现在a.map
和b.map
这是一个错误吗?如何保持containers.Map
每个类对象的独立性?
matlab - 在matlab中使用普通方法
我对 Oop 有点生疏了。我有以下代码。
我正在尝试为 2by2 对角矩阵创建一个类。我在定义方法时遇到了麻烦。我有一个方法
这应该将我的对象转换为对角矩阵。但是当我尝试使用此方法时出现错误
a = diag2by2(1,2)
一个=
具有以下属性的 diag2by2:
a.matrix() 类 diag2by2 没有合适的方法、属性或字段矩阵。
有人可以帮我弄这个吗?
编辑:全班发布
matlab - Matlab监听器多次执行
我在使用 MATLAB 侦听器时遇到问题:PreGet 和 PostGet。我的目的是能够在我编写和编写调用属性时(在每次读/写操作之前和之后)执行一组函数。这是我的课的一个例子:
MATLAB 运行示例:
一切都很好。我可以执行我的功能并获得我想要的结果。虽然,我观察到,我在 MATLAB 上使用了“Tab Completion”功能myTest.myProp
,PreGet
并且PostGet
执行了 4 次!!有时myProp
是一个动态结构,我使用 Tab 完成来访问它的字段。
是否有可能阻止它运行?或者如果不阻止它,至少要检测它?执行选项卡完成时,我可以运行另一个功能(例如,在命令窗口中显示帮助或工具提示)。