如果我想创建一个指定类的数组,则可以使用类似this的方法。因此,创建int
数组看起来像这样:
Aint = int16.empty(5,0);
Aint(1) = 3;
它工作正常。现在,我想创建一个tf
类对象的数组。我的方法是类似的:
L = tf.empty(5, 0);
s = tf('s');
L(1) = s;
这给了我一个错误:
Error using InputOutputModel/subsasgn (line 57)
Not enough input arguments.
Error in tf_array (line 6)
L(1) = s;
我还确保显示class(s)
,并正确显示为tf
。 我在这里怎么办?
答案 0 :(得分:2)
与往常一样,MATLAB documentation给出了有关如何执行此类操作的示例:
class LocationManager { static let shared = LocationManager() var location: CLLocation? var manager = CLLocationManager() private init() { } func start() { manager.requestAlwaysAuthorization() manager.startUpdatingLocation() } func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { LocationManager.shared.location = locations.last } }
因此,问题可能是索引 sys = tf(zeros(1,1,3));
s = tf('s');
for k = 1:3
sys(:,:,k) = k/(s^2+s+k);
end
错误,它必须为L(1)
。
请注意,L(:,:,1)
指示创建5x0数组(即空数组)。这是没有意义的。您不妨跳过此说明。因为以后再做tf.empty(5, 0)
时,您将以任何方式增加数组大小(它从0个元素开始,您想分配一个新元素,它需要重新分配数组)。您应该始终从一开始就努力创建合适大小的数组。