如何创建采样值矩阵

时间:2016-02-04 07:35:42

标签: matlab matrix

我想创建一个矩阵( M -by- N ),取M个连续样本并将它们放在矩阵的列中。所以,序列是 x [0],x [1],...,x [MN-1] 其中 N = 0,1,2,...,n < / em>和矩阵看起来像数学

A = [x_0, x_M,.....,x_{M(N-1)};
     x_1, x_M+1,....,x_{M(N-1)+1}; 
     . ......;
     :   :   :;
     x_{M-1},x_{2M-1},....,x_{MN-1}]

请帮忙

2 个答案:

答案 0 :(得分:3)

Matlab允许线性索引,即以4乘4阵列MM(15)==M(3,4)。因此,您甚至无需重新塑造阵列即可填充阵列:

M = 50;
N = 100;
A = zeros(M,N);
A(1) = 0.1;
for i = 2:N*M %// loop until the very last element
    A(i) = 4*A(i-1)*(1-A(i-1));
end

答案 1 :(得分:1)

我给你另一个解决方案。

如果我理解正确,你有x向量,那么需要创建矩阵A。所有紧张的事情 - 元素的定位。 我们可以这样做(例如,我将使用较小的M,N值):

M = 10;
N = 5;
x(1) = 0.1;
for ii = 2:M*N
    x(ii) = 4*x(ii-1)*(1 - x(ii-1));
end
A = vec2mat(x,M)'; %'

P.S。另一个有趣的问题 - 如何使用矢量化方法创建x ......但我仍然在考虑它......

为了好奇,我将我的方法与Dan的方法进行了比较:

tic; A = vec2mat(x,M)';toc %'
Elapsed time is 0.037790 seconds.
tic; A = reshape(x,M,N); toc
Elapsed time is 0.000016 seconds.

Yeeeep,没有意义使用vec2mat - reshape太棒了!