首页 > 解决方案 > 如何在单独的函数中更新两个数组的多个连接,当一个的大小是有条件的,而另一个是恒定的

问题描述

我发现这个解决方案concatenate empty array,但我不相信它完全解决了我的问题。我想要一种更通用的方法,避免在每个连接实例中添加 if 语句。我转录成 Python 的 MATLAB 脚本中的几个函数位于初始化 的 if 语句之后FixedDictionaryElement,这是一个二维数组。

if (param.preserveDCAtom>0)
    FixedDictionaryElement(1:size(Data,1),1) = 1/sqrt(size(Data,1));
else
    FixedDictionaryElement = [];

如果满足此条件,则初始化一个二维数组,填充数据,然后在几个不同的位置与另一个二维数组连接;但是,如果不满足条件,则会初始化一个空数组FixedDictionaryElement = [],但它仍会连接在相同的位置,就像我在下面给出的示例一样。我假设 MATLAB 只是简单地连接空数组,这最终就像将一个数字乘以 1。填充的数组不受空数组的影响,并且程序继续有增无减。FixedDictionaryElement在这种情况下是空数组。


if (param.errorFlag==0)
        CoefMatrix = OMP(**[FixedDictionaryElement,Dictionary]**,Data, param.L);

假设FixedDictionaryElement = []Dictionary = 34x80

通过查看 MATLAB 代码,我假设空数组已初始化,以允许在整个脚本中完成连接,而与 if 语句的结果无关。否则,你会得到一个FixedDictionaryElement没有空数组的未定义错误。

如何概括上述链接中给出的解决方案,而不在每个连接实例中添加新的 if 语句?

标签: pythonarraysmatlabnumpyconcatenation

解决方案


推荐阅读