我正在实现从MATLAB到Python的代码。我必须定义一些空数组,为它们分配一些值,并使它们在代码正文中为空。
比方说,我在MATLAB中的代码看起来像这样:
s1 = []
s1 = [A.T]
s1
将等同于MATALB中的下一次迭代(s1 = []
)中的空。我试图像下面这样用python编写:
s1 = []
s1.append(A.T)
s11 = np.vstack(s1)
并且我可以在代码中使用s11
而不是s1
。但是,在接下来的迭代中,我应该清空s11
,所以我这样写:s11 = []
。
由于我在上一次迭代中将s11 = np.vstack(s1)
等同于None对象(s11
),因此当到达这行[]
时,这样做会产生错误。
总之,我想知道如何在python中创建一个空数组,为它分配或附加值,然后再次使其为空?s1
是函数的输入,我必须有能力在不同的迭代中使其为空。在MATLAB中非常简单,没有任何麻烦。
任何评论将不胜感激。谢谢
当我阅读您的问题时,您似乎正在使用列表。这有点令人困惑,因为python上的数组是其他列表。
起先,您已经提到了您问题的旁听者:
A = [[1,2],[3,4]]
s1 = []
s1.append(A)
s11 = np.vstack(s1)
s11 = []
非常重要的一件事:当您使用np.vstack时,您的列表将更改为numpy.array。因此,您不能再使用del s11[:]
。
如果这不起作用,请向我们提供有关A.T
的更多信息,也许存在某些数据类型问题。
剩下的一件事:您正在写一个正在引发的错误。对于我们来说,很难通过距离您的计算机远的距离神奇地读取您的错误消息(这是非法的)。
这两件事:错误消息和您的最小示例中的完整数据对于我们帮助您是必需的。