在Matlab中创建tf对象数组

时间:2019-05-09 16:14:53

标签: matlab

如果我想创建一个指定类的数组,则可以使用类似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我在这里怎么办?

1 个答案:

答案 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个元素开始,您想分配一个新元素,它需要重新分配数组)。您应该始终从一开始就努力创建合适大小的数组。