我需要生成一个具有高斯分布的矩阵(值主要从 -5 到 5 分布),一个泊松矩阵,将它们混合并将它们作为Matlab FastICA的输入。
我是 Matlab、发行版和 ICA 的新手,所以一些建议会很有帮助。我一直在努力,但不知道我是否走在正确的轨道上。
为了生成高斯和泊松矩阵,我生成了两个数组:
s2 = poissrnd(2, 1, 40000); %Poisson distribution with lambda 2
s1 = rand(size(s2)) * 10 - 5; %Gaussian distribution and values ranging from -5 to 5
然后我使用reshape函数生成两个 200x200 矩阵。使用image时,我得到以下图像:
我的第一个问题是:这是在 Matlab 中生成高斯和泊松矩阵的正确方法吗?或者是否有一些内置函数可以实际生成矩阵,而不必生成和重塑数组?
现在,第二个问题:使用FastICA。
参考一个非常好的答案:ICA(独立分量分析)快速不动点算法,它提到FastICA需要连续的每个信号。
因此,我通过以下方式生成信号矩阵:
S(1,:) = s1; %row 1
S(2,:) = s2; %row 2
然后我生成一个混合矩阵,添加一些噪声,并将生成的矩阵作为 fastica() 函数的输入。
我的问题是:是否可以将 2D 数据直接提供给 FastICA?如果您有一个包含许多混合信号的图像并想将其提供给 ICA 以便它可以找到独立分量怎么办?
一个指向解释如何在不同输入上使用 FastICA 的教程的链接将非常有帮助。
提前感谢任何阅读这篇文章并试图提供帮助的人。很抱歉这个冗长的问题,我想确保它被很好理解!