Class Matlab类函数-获取返回值

Class Matlab类函数-获取返回值,class,matlab,methods,Class,Matlab,Methods,在我的项目中,我使用两个类-行和三角形。类行在其函数中创建三角形类对象: classdef row < handle % some parameters here methods % constructor and some other functions here function [T1 T2] = createFoR(obj, hT, Alpha, Beta, DeltaAlpha, DeltaBeta) % creating P1 matrix (irre

在我的项目中,我使用两个类-行和三角形。类行在其函数中创建三角形类对象:

classdef row < handle

% some parameters here

methods

% constructor and some other functions here

function [T1 T2] = createFoR(obj, hT, Alpha, Beta, DeltaAlpha, DeltaBeta)
         % creating P1 matrix (irrelevant, its 100% correct)
         T1 = triangle(P1);
         % creating P2 matrix (irrelevant, its 100% correct)
         T2 = triangle(P2);
end

end
或者像这样:

[T1 T2] = Row1.createFoR(T(1,1), Alpha, Beta, DeltaAlpha, DeltaBeta);
[T(2,1) T2] = Row1.createFoR(T(1,1), Alpha, Beta, DeltaAlpha, DeltaBeta);
[T(2,1) T(2,2)] = Row1.createFoR(T(1,1), Alpha, Beta, DeltaAlpha, DeltaBeta);
一切都很好。但当我尝试将两个返回的三角形对象分配给数组单元格时,如下所示:

[T1 T2] = Row1.createFoR(T(1,1), Alpha, Beta, DeltaAlpha, DeltaBeta);
[T(2,1) T2] = Row1.createFoR(T(1,1), Alpha, Beta, DeltaAlpha, DeltaBeta);
[T(2,1) T(2,2)] = Row1.createFoR(T(1,1), Alpha, Beta, DeltaAlpha, DeltaBeta);
我得到这个错误:

Error using triangle (line 10)
Not enough input arguments.

Error in test (line 20)
[T(2,1) T(2,2)] = Row1.createFoR(T(1,1), Alpha, Beta, DeltaAlpha, DeltaBeta);
我可以请你解释一下我做错了什么吗?

看起来T是一个对象,其中T(double,double)是一个函数/构造函数。那么在你指出的情况下

您实际上调用了T(double,double)三次,其中错误具体发生在T(2,2)中,(其中代码是100%正确的?)

根据评论更新

奇怪的是三角形线10中的输入参数错误。问题可能在P1、P2中吗

您也可以尝试以下操作-但是它的猜测没有什么我可以运行/重现的问题(错误在代码中没有列出?)

回答:


另一个想法是,当T(2,2)被填充时,它试图构造没有参数的T(1,2)

我认为数据类型在这里会有所帮助。T是2x2矩阵,而triangle返回双精度?T是包含三角形对象的2x2矩阵。三角形函数是一个构造函数。T是三角形对象的2x2数组。T(int,int)只是对数组cell=具体三角形对象的引用。(正确实现了填充三角形构造函数的参数P矩阵)就我个人而言,我在使用单元格而不是对象{}vs[]的矩阵方面取得了更好的成功。关于创建没有参数的T(1,2)对象,您是正确的。谢谢你的帮助:)很高兴我能帮忙-猜了猜:-)