问题标签 [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 投票
2 回答
1567 浏览

matlab - 为什么 MATLAB 会删除我的 classdef 中的断点?

我正在尝试在 MATLAB R2011b 中调试我自己没有编写的面向对象的应用程序。为此,我想在classdef. 据我所知,这是允许的。然而,当我运行应用程序时,断点神秘地消失了。

我已经clear像这样配置了一个断点:

查看何时clear被调用。在运行应用程序之前,我使用 dbstatus 检查断点是否存在:

(有问题的断点是列表中的第一个。)当我运行应用程序时,classdef 中的断点在调用第一个 clear 之前消失了:

为了确定断点被清除的位置,我逐渐将断点移动到越来越接近根函数的开头,并找到了有问题的代码行:

果然 - 任何调用cd,即使是间接调用,都会清除classdef. 这意味着它run做的事情完全相同。这是令人愤怒的行为。为什么 MATLAB 会这样做?我怎样才能让它不这样做?

0 投票
1 回答
113 浏览

matlab - 在 Matlab 中引用静态函数

对于 MATLAB 中的对象,是否可以在不知道包含包的情况下调用相同类型的静态函数?现在,我发现引用它的唯一方法是使用Package.Whatever.staticfunction(),但我想通过让它独立于它所在的任何包运行来正确封装该类。

我现在找到的解决方案是:

但这似乎笨拙,缓慢且不正确。有更好的方法吗?

0 投票
1 回答
606 浏览

python - 将 MATLAB 中的 GPIB 转换为 PyVISA

我继承了一些用于通过 GPIB 连接对 XYZ 平台进行编程的 MATLAB 代码。为了使其与 Python 中的一些现有代码更兼容,我需要以某种方式对其进行翻译,例如使用 PyVISA 包。我真的很想得到一些帮助!

所以,到目前为止我所做的只是基本的东西,即

由此我可以使用识别命令并正确获取设备的 ID:

那么,知道如何将以下 MATLAB 转换为适当的 PyVISA 命令吗?我最大的问题是我真的不知道如何翻译语法......

0 投票
0 回答
55 浏览

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

我能做些什么才能将类添加到路径中?

0 投票
2 回答
1500 浏览

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的形式。narginnargout

有没有人想出一种方便的方法来验证函数句柄作为输入参数?与它来自哪种函数句柄无关?

0 投票
2 回答
227 浏览

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) constcVanillaDerivs

0 投票
1 回答
123 浏览

matlab - 如何根据Matlab中不同类对象的属性获取依赖属性

请看下面的代码:

Ex_ObjA.m

Ex_ObjBC.m

我尝试执行以下操作:

不成功,因为"Get 方法必须只有一个输入"。所以我可以通过s1.atoEx_ObjBC来获得s1.c

0 投票
1 回答
624 浏览

matlab - 将 container.Map 作为类属性时的奇怪 MATLAB 行为

我创建了自己的类,如下所示:

我的目标是让每个对象都testClass维护自己的地图。然而,事实证明,整个类只有一个映射对象:所有testClass访问相同的对象containers.Map。例如,如果我创建两个对象如下

它最终都ab的地图包含两个键值对:

(key,value) 对 (1,123) 和 (2,321) 都出现在a.mapb.map

这是一个错误吗?如何保持containers.Map每个类对象的独立性?

0 投票
1 回答
113 浏览

matlab - 在matlab中使用普通方法

我对 Oop 有点生疏了。我有以下代码。

我正在尝试为 2by2 对角矩阵创建一个类。我在定义方法时遇到了麻烦。我有一个方法

这应该将我的对象转换为对角矩阵。但是当我尝试使用此方法时出现错误

a = diag2by2(1,2)

一个=

具有以下属性的 diag2by2:

a.matrix() 类 diag2by2 没有合适的方法、属性或字段矩阵。

有人可以帮我弄这个吗?

编辑:全班发布

0 投票
0 回答
252 浏览

matlab - Matlab监听器多次执行

我在使用 MATLAB 侦听器时遇到问题:PreGet 和 PostGet。我的目的是能够在我编写和编写调用属性时(在每次读/写操作之前和之后)执行一组函数。这是我的课的一个例子:

MATLAB 运行示例:

一切都很好。我可以执行我的功能并获得我想要的结果。虽然,我观察到,我在 MATLAB 上使用了“Tab Completion”功能myTest.myPropPreGet并且PostGet执行了 4 次!!有时myProp是一个动态结构,我使用 Tab 完成来访问它的字段。

是否有可能阻止它运行?或者如果不阻止它,至少要检测它?执行选项卡完成时,我可以运行另一个功能(例如,在命令窗口中显示帮助或工具提示)。