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)对象,您是正确的。谢谢你的帮助:)很高兴我能帮忙-猜了猜:-)